diff -Nrcpad gcc-16-20260412/LAST_UPDATED gcc-16-20260419/LAST_UPDATED
*** gcc-16-20260412/LAST_UPDATED	Sun Apr 12 22:32:21 2026
--- gcc-16-20260419/LAST_UPDATED	Sun Apr 19 22:32:24 2026
***************
*** 1 ****
! Obtained from git: master revision fff3733ea4e6d215f73f2529fad173681026c1a7
--- 1 ----
! Obtained from git: master revision 68920b1f14dc6b27428a92d9c0d3c8237bb361f9
diff -Nrcpad gcc-16-20260412/MD5SUMS gcc-16-20260419/MD5SUMS
*** gcc-16-20260412/MD5SUMS	Sun Apr 12 22:32:27 2026
--- gcc-16-20260419/MD5SUMS	Sun Apr 19 22:32:29 2026
***************
*** 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
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260419.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
! 322fff08b95b1c02312fdcd10cd1add3  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 3e83091c0fe983e31fd1f27743fd796a  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
*************** c5a60ac6626343968c4ef1fdf261bf62  c++too
*** 49,55 ****
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 9d674ac77e4d53d9dc6398a6f1ac1080  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  45979039ae56d255a866095bc20985a4  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
--- 49,55 ----
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 95b0c1a08bc52acdb927d4fb14d19731  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  45979039ae56d255a866095bc20985a4  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
*************** b75e527c5a9b8dcbcfb1ac321fa244eb  config
*** 113,122 ****
  78e7696b225bc3ffb0912c905ceee32e  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
! 3fe4a576c2a75736c8da3af1d0824217  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! fd9ed5b9d9dbb22a41f305c72c411ba1  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
--- 113,122 ----
  78e7696b225bc3ffb0912c905ceee32e  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
! a6459928053a02b8092ceda8f534097e  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! 44d3da2368ed3af5582490d54cd7e31a  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
*************** e2dc6b4fd62b77bff96b7951ef74f78f  config
*** 159,165 ****
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
  f4a7d891c0d09f14fb5ed903f0475fc2  configure
  ed59804e21951f404fa6ecd283c6ffa3  configure.ac
! f65bf6d671b913c2c5e29f56bbbedf2f  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  0928ae42250fbb57246cf6e9bff2276b  contrib/analyze_brprob.py
--- 159,165 ----
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
  f4a7d891c0d09f14fb5ed903f0475fc2  configure
  ed59804e21951f404fa6ecd283c6ffa3  configure.ac
! 580e68d0ac129a6f0a73ec557a06f2b4  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  0928ae42250fbb57246cf6e9bff2276b  contrib/analyze_brprob.py
*************** d577ea19d05f19a8364f73c9901223b7  contri
*** 213,219 ****
  1462df56c813a6a6cdf97c7baa877d7c  contrib/gcc-changelog/git_commit.py
  4f7f7ef965f965a23efd54be62ace12d  contrib/gcc-changelog/git_email.py
  c9b38a05e2da6bd427df5301db56e913  contrib/gcc-changelog/git_repository.py
! 516cf9f9b1537ba3a91bd9987afeccac  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
  7f6fb197e7f7926991055526054c2240  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
--- 213,219 ----
  1462df56c813a6a6cdf97c7baa877d7c  contrib/gcc-changelog/git_commit.py
  4f7f7ef965f965a23efd54be62ace12d  contrib/gcc-changelog/git_email.py
  c9b38a05e2da6bd427df5301db56e913  contrib/gcc-changelog/git_repository.py
! 96dd034b921d1240c115f24cf4fa6dc0  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
  7f6fb197e7f7926991055526054c2240  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
*************** f15bc3c5de22eac0bdd4f611502139a0  gcc/AB
*** 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
--- 530,536 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 699ad9e148231755a44cfc945037785c  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 568,574 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 178f66b56dd574fd780ce9aa8b3b316e  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 568,574 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! c26144b47ed9e038db85562ecb2bc4a8  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/RE
*** 580,586 ****
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 7cec5b32f8ae0febbf9fd846ad314124  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 580,586 ----
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! c6e6e5d751586477f5e3cec97fe97015  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** fabb943ae5026300821049a63f358453  gcc/ad
*** 761,767 ****
  3dc31e56d392ba3da0e312527adcd953  gcc/ada/eval_fat.adb
  3a42a1f58a3aff7741ec916dfc1d9882  gcc/ada/eval_fat.ads
  adb49f37416fce62d5759f9b4c733fe6  gcc/ada/exit.c
! 6a9cb8e6a035f5105d3f246fa6ca7978  gcc/ada/exp_aggr.adb
  8d6933ec0ee945c50b4e8c114b1221b6  gcc/ada/exp_aggr.ads
  045a2ef4e4932ea2c0b17910db37af46  gcc/ada/exp_atag.adb
  2a027dfad5944cc346ee7c94c022d302  gcc/ada/exp_atag.ads
--- 761,767 ----
  3dc31e56d392ba3da0e312527adcd953  gcc/ada/eval_fat.adb
  3a42a1f58a3aff7741ec916dfc1d9882  gcc/ada/eval_fat.ads
  adb49f37416fce62d5759f9b4c733fe6  gcc/ada/exit.c
! 06d488853d68e0f0a67a4bd755cdb6e4  gcc/ada/exp_aggr.adb
  8d6933ec0ee945c50b4e8c114b1221b6  gcc/ada/exp_aggr.ads
  045a2ef4e4932ea2c0b17910db37af46  gcc/ada/exp_atag.adb
  2a027dfad5944cc346ee7c94c022d302  gcc/ada/exp_atag.ads
*************** c2b6f0e40ada726a36b2cba815c79591  gcc/ad
*** 844,850 ****
  c8c5844ba2c26bdc1b7c004e5b806668  gcc/ada/frontend.adb
  03bc5c5bdf3e467c3fa035201ba507d2  gcc/ada/frontend.ads
  ebc793bc845743c8d1abae02a7f2d8a3  gcc/ada/gcc-interface/Make-lang.in
! 40f59609db27aeffe2aee00906b76543  gcc/ada/gcc-interface/Makefile.in
  4a3368e207a707c3b5a9ffd105f8eec0  gcc/ada/gcc-interface/ada-builtin-types.def
  543f471801cbaf1a34c4f0289b0b17ec  gcc/ada/gcc-interface/ada-builtins.def
  c7fe6d4e6ada24fd6764ce68ba3f91b2  gcc/ada/gcc-interface/ada-tree.def
--- 844,850 ----
  c8c5844ba2c26bdc1b7c004e5b806668  gcc/ada/frontend.adb
  03bc5c5bdf3e467c3fa035201ba507d2  gcc/ada/frontend.ads
  ebc793bc845743c8d1abae02a7f2d8a3  gcc/ada/gcc-interface/Make-lang.in
! 86c8a16f2b5518ed421c0b0f9748197a  gcc/ada/gcc-interface/Makefile.in
  4a3368e207a707c3b5a9ffd105f8eec0  gcc/ada/gcc-interface/ada-builtin-types.def
  543f471801cbaf1a34c4f0289b0b17ec  gcc/ada/gcc-interface/ada-builtins.def
  c7fe6d4e6ada24fd6764ce68ba3f91b2  gcc/ada/gcc-interface/ada-tree.def
*************** de3ea1d27e8b5f344d80aa722cdc03dc  gcc/ad
*** 1842,1852 ****
  996bc756556e7ebe0962f1fd9be34d30  gcc/ada/libgnat/g-gfmafu.ads
  517c7259b118bc4fb3f16ffa66bebf49  gcc/ada/libgnat/g-graphs.adb
  b866c8482c66c4418a649a9dfd48716b  gcc/ada/libgnat/g-graphs.ads
! 0262b3086af78b478097bc13738d10fc  gcc/ada/libgnat/g-heasor.adb
  dd164f2d8610ced6e1b3dc1ecec468e2  gcc/ada/libgnat/g-heasor.ads
! 319a3e12f58725c28dd27b61990f1343  gcc/ada/libgnat/g-hesora.adb
  56ca74ffc75cd2969aefad9cab00faf4  gcc/ada/libgnat/g-hesora.ads
! 1a18928b34b64eb1744a38ecaa6f3858  gcc/ada/libgnat/g-hesorg.adb
  aa07e76a1b9645716afbb7ce2879e22f  gcc/ada/libgnat/g-hesorg.ads
  928e96e77b98a425f98bc0688ada8589  gcc/ada/libgnat/g-htable.adb
  eeeb8d0214b4bd02284f05872dc5e9c8  gcc/ada/libgnat/g-htable.ads
--- 1842,1852 ----
  996bc756556e7ebe0962f1fd9be34d30  gcc/ada/libgnat/g-gfmafu.ads
  517c7259b118bc4fb3f16ffa66bebf49  gcc/ada/libgnat/g-graphs.adb
  b866c8482c66c4418a649a9dfd48716b  gcc/ada/libgnat/g-graphs.ads
! bc2b921adc1c179e2ac10748ccade5c7  gcc/ada/libgnat/g-heasor.adb
  dd164f2d8610ced6e1b3dc1ecec468e2  gcc/ada/libgnat/g-heasor.ads
! f9fe34de5c547db9138e8cf3b1adb671  gcc/ada/libgnat/g-hesora.adb
  56ca74ffc75cd2969aefad9cab00faf4  gcc/ada/libgnat/g-hesora.ads
! e4d5a10bcf68bc55af3d9e9d8be78549  gcc/ada/libgnat/g-hesorg.adb
  aa07e76a1b9645716afbb7ce2879e22f  gcc/ada/libgnat/g-hesorg.ads
  928e96e77b98a425f98bc0688ada8589  gcc/ada/libgnat/g-htable.adb
  eeeb8d0214b4bd02284f05872dc5e9c8  gcc/ada/libgnat/g-htable.ads
*************** a6819d1f5218269d58d4e0c163c9ccfe  gcc/ad
*** 2567,2573 ****
  d9e6bb0a317997898545a1ab7a626fbd  gcc/ada/libgnat/s-parame__vxworks.ads
  bbe5cedc525206cecd8b81632f76dc9a  gcc/ada/libgnat/s-parint.adb
  7ee2487ac127388f2acbe1d9c862ec7a  gcc/ada/libgnat/s-parint.ads
! c9d15eeda9310f04e71a875ab655d7bb  gcc/ada/libgnat/s-pehage.adb
  188f26e38e87cac69c070a7918fc98b2  gcc/ada/libgnat/s-pehage.ads
  f62d4a2694286a61a70ba155f8706d94  gcc/ada/libgnat/s-pooglo.adb
  2225771b344236fbc6f6d221b9099ed1  gcc/ada/libgnat/s-pooglo.ads
--- 2567,2573 ----
  d9e6bb0a317997898545a1ab7a626fbd  gcc/ada/libgnat/s-parame__vxworks.ads
  bbe5cedc525206cecd8b81632f76dc9a  gcc/ada/libgnat/s-parint.adb
  7ee2487ac127388f2acbe1d9c862ec7a  gcc/ada/libgnat/s-parint.ads
! 28208509486242e448ee2da92580ebed  gcc/ada/libgnat/s-pehage.adb
  188f26e38e87cac69c070a7918fc98b2  gcc/ada/libgnat/s-pehage.ads
  f62d4a2694286a61a70ba155f8706d94  gcc/ada/libgnat/s-pooglo.adb
  2225771b344236fbc6f6d221b9099ed1  gcc/ada/libgnat/s-pooglo.ads
*************** eb23a07f1fb62ed39d1053619d51487b  gcc/ad
*** 2957,2963 ****
  39b96f04803db97ae1f7376d30a0cfec  gcc/ada/sem_mech.ads
  764f62b9f61374685638654b0eed967b  gcc/ada/sem_prag.adb
  61f67b82bf0abfa83eb7e4927498285c  gcc/ada/sem_prag.ads
! 7212a27b629fc59595ee952368a9ffd4  gcc/ada/sem_res.adb
  e3b9f77c37497d7f7824085d3df8fde8  gcc/ada/sem_res.ads
  4e8a9bc2b398560942d0c08f4017fabb  gcc/ada/sem_scil.adb
  64ae38c93be63a67f143484eba77604b  gcc/ada/sem_scil.ads
--- 2957,2963 ----
  39b96f04803db97ae1f7376d30a0cfec  gcc/ada/sem_mech.ads
  764f62b9f61374685638654b0eed967b  gcc/ada/sem_prag.adb
  61f67b82bf0abfa83eb7e4927498285c  gcc/ada/sem_prag.ads
! 4b68df0d35e789d1c04da20af1daba86  gcc/ada/sem_res.adb
  e3b9f77c37497d7f7824085d3df8fde8  gcc/ada/sem_res.ads
  4e8a9bc2b398560942d0c08f4017fabb  gcc/ada/sem_scil.adb
  64ae38c93be63a67f143484eba77604b  gcc/ada/sem_scil.ads
*************** c5d01e333528c77ef6820d2fd4b519a7  gcc/ad
*** 3047,3053 ****
  e77bb76f340ad4be7e8d98269e7f7be1  gcc/ada/uintp.h
  8cd8ae9ff97e65db00a31424f25247ce  gcc/ada/uname.adb
  eeb6ea2feb12c39a0ea2095fca6e3d2a  gcc/ada/uname.ads
! 2c0d1e07afa63ecfdaa83925be438d90  gcc/ada/urealp.adb
  b17f72ec54df78b4b67b979813d3f97f  gcc/ada/urealp.ads
  317b5a188697bfc0e6040fa648e9d9da  gcc/ada/urealp.h
  27905040bd49b3ea5db6081f15e9ba12  gcc/ada/usage.adb
--- 3047,3053 ----
  e77bb76f340ad4be7e8d98269e7f7be1  gcc/ada/uintp.h
  8cd8ae9ff97e65db00a31424f25247ce  gcc/ada/uname.adb
  eeb6ea2feb12c39a0ea2095fca6e3d2a  gcc/ada/uname.ads
! c19c2a871c32fc6aff1e0c6aab0d550f  gcc/ada/urealp.adb
  b17f72ec54df78b4b67b979813d3f97f  gcc/ada/urealp.ads
  317b5a188697bfc0e6040fa648e9d9da  gcc/ada/urealp.h
  27905040bd49b3ea5db6081f15e9ba12  gcc/ada/usage.adb
*************** b7dd8bd2dd68f81643704bf0b73553a1  gcc/al
*** 3149,3155 ****
  71901705cb0e11732bae53ff9de25faf  gcc/align.h
  f2345b2fdc9d2d5a75fe90d30444a114  gcc/alloc-pool.cc
  7657598f465321837951c858ab918f57  gcc/alloc-pool.h
! cbf97bc59734262d63c5ba1741f76320  gcc/analyzer/ChangeLog
  a53ebffbaabe6bc3664d659c554fedb3  gcc/analyzer/access-diagram.cc
  c41fa6be7ca91f40a15a7b8f03732d25  gcc/analyzer/access-diagram.h
  d97e417faf9694fdbd68f91aee129bd2  gcc/analyzer/ana-state-to-diagnostic-state.cc
--- 3149,3155 ----
  71901705cb0e11732bae53ff9de25faf  gcc/align.h
  f2345b2fdc9d2d5a75fe90d30444a114  gcc/alloc-pool.cc
  7657598f465321837951c858ab918f57  gcc/alloc-pool.h
! e861944a51bf258485d27ad578900b89  gcc/analyzer/ChangeLog
  a53ebffbaabe6bc3664d659c554fedb3  gcc/analyzer/access-diagram.cc
  c41fa6be7ca91f40a15a7b8f03732d25  gcc/analyzer/access-diagram.h
  d97e417faf9694fdbd68f91aee129bd2  gcc/analyzer/ana-state-to-diagnostic-state.cc
*************** f945a407a1ad45be621e572190f6e11f  gcc/an
*** 3188,3194 ****
  7d0cf2441abcd960f97e29dd071829e5  gcc/analyzer/constraint-manager.h
  2728e4b1b06abaf098bfdc996d29a5af  gcc/analyzer/diagnostic-manager.cc
  ca695b2d13762f05a1ab6018eba991c7  gcc/analyzer/diagnostic-manager.h
! 9386d9f47a258f189ffb26e5032d0f7c  gcc/analyzer/engine.cc
  42e3e00aa33d20f2e141615939577290  gcc/analyzer/engine.h
  f35c6c791ba815800582950c54998869  gcc/analyzer/event-loc-info.h
  dac4d88af8620f1805a41dfb31dd5c1b  gcc/analyzer/exploded-graph.h
--- 3188,3194 ----
  7d0cf2441abcd960f97e29dd071829e5  gcc/analyzer/constraint-manager.h
  2728e4b1b06abaf098bfdc996d29a5af  gcc/analyzer/diagnostic-manager.cc
  ca695b2d13762f05a1ab6018eba991c7  gcc/analyzer/diagnostic-manager.h
! 0b21f47f418ffb3672d1e9f35c035d88  gcc/analyzer/engine.cc
  42e3e00aa33d20f2e141615939577290  gcc/analyzer/engine.h
  f35c6c791ba815800582950c54998869  gcc/analyzer/event-loc-info.h
  dac4d88af8620f1805a41dfb31dd5c1b  gcc/analyzer/exploded-graph.h
*************** f6b634d7c0204c419cf4fb7b48193fad  gcc/c/
*** 3350,3356 ****
  3ae90e1d8085765b7e7488ac9673a927  gcc/c/gimple-parser.cc
  d5c1cad6808353782d75116a4939d551  gcc/c/gimple-parser.h
  8b7ae733f9c7c1e52dc5db93bec9cc45  gcc/caller-save.cc
! 34e3720d33dd07d0684a943297a0425e  gcc/calls.cc
  ff5a0cd0f881aae35e405e715150405b  gcc/calls.h
  3a4ad3325026c8bc065648c9af3f67fb  gcc/ccmp.cc
  bdba39e87a75c76bfc3ab3bfd08e7f02  gcc/ccmp.h
--- 3350,3356 ----
  3ae90e1d8085765b7e7488ac9673a927  gcc/c/gimple-parser.cc
  d5c1cad6808353782d75116a4939d551  gcc/c/gimple-parser.h
  8b7ae733f9c7c1e52dc5db93bec9cc45  gcc/caller-save.cc
! b40f416783095fe53a15120613a517c0  gcc/calls.cc
  ff5a0cd0f881aae35e405e715150405b  gcc/calls.h
  3a4ad3325026c8bc065648c9af3f67fb  gcc/ccmp.cc
  bdba39e87a75c76bfc3ab3bfd08e7f02  gcc/ccmp.h
*************** f18b9392122c866e0f6862690656ebd5  gcc/cf
*** 3374,3384 ****
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
  6efea778480901818ae74c1e5abf4f5f  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
! 2b1b2896d2c4291f234b0135bf74ba80  gcc/cgraph.cc
! 36c074c6a2c861a5fa311704a308cd61  gcc/cgraph.h
! de90956fd0fa66b3093b818874bbb4f4  gcc/cgraphbuild.cc
  1a06be3556807c21f91d629f5878d022  gcc/cgraphclones.cc
! e49d05909919035f9ad4633fc056bc56  gcc/cgraphunit.cc
  45b21ab7ea818c3a3ce60bf8d3cbd252  gcc/channels.h
  931fe41c17df7e7a6074418f8e41f010  gcc/cif-code.def
  b576255b7c89d8f4c48ece9eb9f58b69  gcc/cobol/ChangeLog
--- 3374,3384 ----
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
  6efea778480901818ae74c1e5abf4f5f  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
! 23b9aa75531c001cb377f7909d709c80  gcc/cgraph.cc
! d61fe81ae621d346985061a794ecfd03  gcc/cgraph.h
! 0e01d226aed9a7a844ec0cec027e8bd4  gcc/cgraphbuild.cc
  1a06be3556807c21f91d629f5878d022  gcc/cgraphclones.cc
! a9229e8ac3f0d366e296e57756becd23  gcc/cgraphunit.cc
  45b21ab7ea818c3a3ce60bf8d3cbd252  gcc/channels.h
  931fe41c17df7e7a6074418f8e41f010  gcc/cif-code.def
  b576255b7c89d8f4c48ece9eb9f58b69  gcc/cobol/ChangeLog
*************** d3b8ce30c6110489fd0b57d6792f3f29  gcc/co
*** 3504,3510 ****
  88eac990ca6879dcd747cf5113888b1e  gcc/compare-elim.cc
  6137f3da8f70ec4262acab21bb549148  gcc/conditions.h
  4250c8b8d57bf1315174cf436a74a88b  gcc/config.build
! 9fc4c09fec6a092b9b87519cb7cd0040  gcc/config.gcc
  d8b0b26795a60b3a991dfbdafe4cd756  gcc/config.host
  34da5cde8b9bc078646ece2f7754fa2f  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
--- 3504,3510 ----
  88eac990ca6879dcd747cf5113888b1e  gcc/compare-elim.cc
  6137f3da8f70ec4262acab21bb549148  gcc/conditions.h
  4250c8b8d57bf1315174cf436a74a88b  gcc/config.build
! 9f5106a7780803fa2407f1ec9ad78d23  gcc/config.gcc
  d8b0b26795a60b3a991dfbdafe4cd756  gcc/config.host
  34da5cde8b9bc078646ece2f7754fa2f  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
*************** c8a924cfcb693679febdcde3a0cc0809  gcc/co
*** 3517,3523 ****
  a1a7d26ecab3d6681a1d3f5c2cb77275  gcc/config/aarch64/aarch64-builtins.h
  3330c8b7c6a60c9f7691d80f8b33026b  gcc/config/aarch64/aarch64-c.cc
  3effce0415a0994753b7865834e56638  gcc/config/aarch64/aarch64-coff.h
! 75acb1be2fb44d613611ec0df69c87bd  gcc/config/aarch64/aarch64-cores.def
  cd1537928dd0fadfa53b88b278af0ed2  gcc/config/aarch64/aarch64-cost-tables.h
  5d9722001af118d5011d62beba0e3879  gcc/config/aarch64/aarch64-d.cc
  3d35dd7bbc8358248117e8edb6f6895f  gcc/config/aarch64/aarch64-d.h
--- 3517,3523 ----
  a1a7d26ecab3d6681a1d3f5c2cb77275  gcc/config/aarch64/aarch64-builtins.h
  3330c8b7c6a60c9f7691d80f8b33026b  gcc/config/aarch64/aarch64-c.cc
  3effce0415a0994753b7865834e56638  gcc/config/aarch64/aarch64-coff.h
! 1e3f3e85ee00a43b3932b2c53c40df08  gcc/config/aarch64/aarch64-cores.def
  cd1537928dd0fadfa53b88b278af0ed2  gcc/config/aarch64/aarch64-cost-tables.h
  5d9722001af118d5011d62beba0e3879  gcc/config/aarch64/aarch64-d.cc
  3d35dd7bbc8358248117e8edb6f6895f  gcc/config/aarch64/aarch64-d.h
*************** b5673de84eb78885b56917c7b8b92e97  gcc/co
*** 3544,3555 ****
  66724803f21104e637c395aa5cad8a59  gcc/config/aarch64/aarch64-ldpstp.md
  bfa2432e1ec80f8de2e43f3f3ba8da0e  gcc/config/aarch64/aarch64-linux.h
  ef1ce762dfa6300b426ed1df70cd6069  gcc/config/aarch64/aarch64-modes.def
  c058178535c874c3d9f517b5db804691  gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def
  99262ad964faab9a1090f68a8b3d6d7a  gcc/config/aarch64/aarch64-netbsd.h
  4ac96a19bb5198741503893e13567775  gcc/config/aarch64/aarch64-option-extensions.def
  2cdaca2f6acccb800d5965b66c5168ce  gcc/config/aarch64/aarch64-opts.h
! bea86af4419462a3a3757188d5519ae8  gcc/config/aarch64/aarch64-passes.def
! 9962b48c43300eab5e124784125f215c  gcc/config/aarch64/aarch64-protos.h
  7beff4ec013b184132d7c933faa51208  gcc/config/aarch64/aarch64-sched-dispatch.cc
  b824341b8f6fdb8eb1667425adf63db8  gcc/config/aarch64/aarch64-sched-dispatch.h
  da15606bcbef7961db958c042bf81c05  gcc/config/aarch64/aarch64-simd-builtin-types.def
--- 3544,3556 ----
  66724803f21104e637c395aa5cad8a59  gcc/config/aarch64/aarch64-ldpstp.md
  bfa2432e1ec80f8de2e43f3f3ba8da0e  gcc/config/aarch64/aarch64-linux.h
  ef1ce762dfa6300b426ed1df70cd6069  gcc/config/aarch64/aarch64-modes.def
+ c0db310b63c50e7b54beaee1e2f61078  gcc/config/aarch64/aarch64-narrow-gp-writes.cc
  c058178535c874c3d9f517b5db804691  gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def
  99262ad964faab9a1090f68a8b3d6d7a  gcc/config/aarch64/aarch64-netbsd.h
  4ac96a19bb5198741503893e13567775  gcc/config/aarch64/aarch64-option-extensions.def
  2cdaca2f6acccb800d5965b66c5168ce  gcc/config/aarch64/aarch64-opts.h
! c7b072f711fa836ea89000f6f5ae25fe  gcc/config/aarch64/aarch64-passes.def
! 533b86c66767379e8735428e530b8ede  gcc/config/aarch64/aarch64-protos.h
  7beff4ec013b184132d7c933faa51208  gcc/config/aarch64/aarch64-sched-dispatch.cc
  b824341b8f6fdb8eb1667425adf63db8  gcc/config/aarch64/aarch64-sched-dispatch.h
  da15606bcbef7961db958c042bf81c05  gcc/config/aarch64/aarch64-simd-builtin-types.def
*************** e3b84b8c70b76f20a6d8123da2876317  gcc/co
*** 3576,3590 ****
  f254f4eb5433b6e41d08c6dd0805b7c0  gcc/config/aarch64/aarch64-sve.md
  78d4791112b168ff5157e8e4c95a40a5  gcc/config/aarch64/aarch64-sve2.md
  ce756734c2d086ac2b6f48267acb68ea  gcc/config/aarch64/aarch64-sys-regs.def
! 2c1d37ac8eebc2ac70037c777cdd5f68  gcc/config/aarch64/aarch64-tune.md
  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
! f8862c1a17df0d9164d1f07fc8288527  gcc/config/aarch64/aarch64.opt.urls
  854a2fd8965d477c5b064388ed354bf1  gcc/config/aarch64/arm_acle.h
  e8d32471149337fb86504c9b287a6aef  gcc/config/aarch64/arm_bf16.h
  b156014d3463d59daa50c73ab8e10b54  gcc/config/aarch64/arm_fp16.h
--- 3577,3591 ----
  f254f4eb5433b6e41d08c6dd0805b7c0  gcc/config/aarch64/aarch64-sve.md
  78d4791112b168ff5157e8e4c95a40a5  gcc/config/aarch64/aarch64-sve2.md
  ce756734c2d086ac2b6f48267acb68ea  gcc/config/aarch64/aarch64-sys-regs.def
! e101bed95b5d0264c364d8bcf1a7705f  gcc/config/aarch64/aarch64-tune.md
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
! 45c6b1a7ca031f6a0af001317cc5e476  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 9978f6531f3a4826223e96ebf5bb5ceb  gcc/config/aarch64/aarch64.cc
  643919d961f71a1bd5cc1df13bbd79f5  gcc/config/aarch64/aarch64.h
! bd813cb7dfa70cb6c970d78d27ead783  gcc/config/aarch64/aarch64.md
! 473ca0d59415b61c8ee8e6c85d2ccb62  gcc/config/aarch64/aarch64.opt
! 5bc2d62d910e1c00bd6eed6ffaa5a18d  gcc/config/aarch64/aarch64.opt.urls
  854a2fd8965d477c5b064388ed354bf1  gcc/config/aarch64/arm_acle.h
  e8d32471149337fb86504c9b287a6aef  gcc/config/aarch64/arm_bf16.h
  b156014d3463d59daa50c73ab8e10b54  gcc/config/aarch64/arm_fp16.h
*************** b8dedf1142526bb86368b620384f877a  gcc/co
*** 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
--- 3613,3619 ----
  b382a70dce13e2b3d554e31443c0dbf0  gcc/config/aarch64/olympus.md
  38f51f94de89d54e9076031bb9368473  gcc/config/aarch64/predicates.md
  d28594900d3dd9c03845b0a6c7b79bb2  gcc/config/aarch64/rtems.h
! 995e17141128acc7d41cdf9081d39e84  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
*************** ee1645bd7e049365c9b52b774f3e8324  gcc/co
*** 3648,3654 ****
  0e884947a64edcd1a0ab1c2d7f79ecc3  gcc/config/aarch64/tuning_models/neoversev2.h
  850f4e265f4d69a8db04fb6b9a509a73  gcc/config/aarch64/tuning_models/neoversev3.h
  da9eaf909c14d1ac8802b858a796dd0b  gcc/config/aarch64/tuning_models/neoversev3ae.h
! cc9d43dc448a1ac731494dbf349143e9  gcc/config/aarch64/tuning_models/olympus.h
  abe9f0139f34302abf43f42fc034f8a4  gcc/config/aarch64/tuning_models/qdf24xx.h
  f4bb7074b559d7a9ada65e9f1ea7e76e  gcc/config/aarch64/tuning_models/saphira.h
  79b67a066ee629e9a5d00e7dbc5da7b3  gcc/config/aarch64/tuning_models/thunderx.h
--- 3649,3655 ----
  0e884947a64edcd1a0ab1c2d7f79ecc3  gcc/config/aarch64/tuning_models/neoversev2.h
  850f4e265f4d69a8db04fb6b9a509a73  gcc/config/aarch64/tuning_models/neoversev3.h
  da9eaf909c14d1ac8802b858a796dd0b  gcc/config/aarch64/tuning_models/neoversev3ae.h
! d697f4c32319e1c4a7bd9173bc45a0db  gcc/config/aarch64/tuning_models/olympus.h
  abe9f0139f34302abf43f42fc034f8a4  gcc/config/aarch64/tuning_models/qdf24xx.h
  f4bb7074b559d7a9ada65e9f1ea7e76e  gcc/config/aarch64/tuning_models/saphira.h
  79b67a066ee629e9a5d00e7dbc5da7b3  gcc/config/aarch64/tuning_models/thunderx.h
*************** ca3c352ed251bec441567afd8b02f359  gcc/co
*** 3735,3741 ****
  1cb6f9013e1360037c682fef8d934a5b  gcc/config/arm/arm-builtins.cc
  920894cd18c51649dff6d840bfda18de  gcc/config/arm/arm-builtins.h
  34409fea491dd8677014904be3b9080b  gcc/config/arm/arm-c.cc
! eb00f2b6d03b61a423ff00a5f71f0ec6  gcc/config/arm/arm-cpus.in
  c2f121656ff76fa330d1690bf063c023  gcc/config/arm/arm-d.cc
  d58398b8674211171ea210f8d3f3883b  gcc/config/arm/arm-d.h
  47204ef76195d8b26239522f177add5f  gcc/config/arm/arm-fixed.md
--- 3736,3742 ----
  1cb6f9013e1360037c682fef8d934a5b  gcc/config/arm/arm-builtins.cc
  920894cd18c51649dff6d840bfda18de  gcc/config/arm/arm-builtins.h
  34409fea491dd8677014904be3b9080b  gcc/config/arm/arm-c.cc
! 59b907b2534b4e035881307714a958dc  gcc/config/arm/arm-cpus.in
  c2f121656ff76fa330d1690bf063c023  gcc/config/arm/arm-d.cc
  d58398b8674211171ea210f8d3f3883b  gcc/config/arm/arm-d.h
  47204ef76195d8b26239522f177add5f  gcc/config/arm/arm-fixed.md
*************** b8dda5ab1f67b388debff95f4a66c82c  gcc/co
*** 3760,3768 ****
  555504756e42d516b613cd492f56e83e  gcc/config/arm/arm-tables.opt
  f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
  b5f7e0b5b33aa917de47ab3bf691f123  gcc/config/arm/arm-tune.md
! c8422fb96103a1839f033350d6f944e4  gcc/config/arm/arm.cc
  fcb5b2782878cf25e12f0da91cb0075b  gcc/config/arm/arm.h
! 3b3e7ea46f06ec3f7e2310e36ac30b56  gcc/config/arm/arm.md
  68b71bf902cc6c9290e847ce76a9fdea  gcc/config/arm/arm.opt
  e9f9bb6f33d1b0c95dc7ccae3a50cbaf  gcc/config/arm/arm.opt.urls
  9e0f773438fc26deecff276e4b7684ef  gcc/config/arm/arm1020e.md
--- 3761,3769 ----
  555504756e42d516b613cd492f56e83e  gcc/config/arm/arm-tables.opt
  f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
  b5f7e0b5b33aa917de47ab3bf691f123  gcc/config/arm/arm-tune.md
! cb58c0dd7b0de0f08685beb13a3bf2f0  gcc/config/arm/arm.cc
  fcb5b2782878cf25e12f0da91cb0075b  gcc/config/arm/arm.h
! 718358831a77990f5ecbcd9bdbcee0f4  gcc/config/arm/arm.md
  68b71bf902cc6c9290e847ce76a9fdea  gcc/config/arm/arm.opt
  e9f9bb6f33d1b0c95dc7ccae3a50cbaf  gcc/config/arm/arm.opt.urls
  9e0f773438fc26deecff276e4b7684ef  gcc/config/arm/arm1020e.md
*************** b63569ecff9557acb7963f14a101bce1  gcc/co
*** 4303,4311 ****
  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
  b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
  7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
--- 4304,4312 ----
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
  91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
! a946b6bbddac6489aa71ea04ff0f4f92  gcc/config/i386/i386.cc
  483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
! 2e28728913155c03c58850abc4d5bbff  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
  b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
  7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
*************** db114ac74c87743a142214fddaad2687  gcc/co
*** 4368,4374 ****
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! 9777a2100663b188f2b18e9a3cbaa9b9  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
  a626b4e6cd3e15f4e9d5c769b6391243  gcc/config/i386/subst.md
--- 4369,4375 ----
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! 51e746a1ef0de0276d1750d6232f4d47  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
  a626b4e6cd3e15f4e9d5c769b6391243  gcc/config/i386/subst.md
*************** f42170d324293ddaaf014bfe990b848b  gcc/co
*** 4540,4546 ****
  dadec2097ca9c4947a49a5766ac8ee89  gcc/config/loongarch/loongarch-str.h
  fc623524d75c7561f85f81615ecad0ac  gcc/config/loongarch/loongarch-target-attr.cc
  3cfb174db8bc99a9361e597a3e9bd35e  gcc/config/loongarch/loongarch-tune.h
! c41365ba187f9890f0de3021322c2241  gcc/config/loongarch/loongarch.cc
  57abfb8c653a24903f61e5cf93ac929f  gcc/config/loongarch/loongarch.h
  1b11d059c390458cbbf8e16a8efa5e6f  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
--- 4541,4547 ----
  dadec2097ca9c4947a49a5766ac8ee89  gcc/config/loongarch/loongarch-str.h
  fc623524d75c7561f85f81615ecad0ac  gcc/config/loongarch/loongarch-target-attr.cc
  3cfb174db8bc99a9361e597a3e9bd35e  gcc/config/loongarch/loongarch-tune.h
! 6f74feee1e5b9636e1df56aa447d09cb  gcc/config/loongarch/loongarch.cc
  57abfb8c653a24903f61e5cf93ac929f  gcc/config/loongarch/loongarch.h
  1b11d059c390458cbbf8e16a8efa5e6f  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
*************** d074a00b74c8d59607883f2f8c168c98  gcc/co
*** 4649,4655 ****
  d9acafef244dad41d6608fcd8d0fc913  gcc/config/microblaze/microblaze-protos.h
  f7bed44c80aaefbbda5efbce9514615a  gcc/config/microblaze/microblaze.cc
  416e7e40813d736926bb6a4f4b386070  gcc/config/microblaze/microblaze.h
! 37667df56e88b0ec4a47e2f43a3172ae  gcc/config/microblaze/microblaze.md
  1bfdc8ff504b1a00dc9e86930fd88313  gcc/config/microblaze/microblaze.opt
  b068232199fc8154ef950e53bf98f53d  gcc/config/microblaze/microblaze.opt.urls
  8d75c5f60841931e2de39df941a9975c  gcc/config/microblaze/predicates.md
--- 4650,4656 ----
  d9acafef244dad41d6608fcd8d0fc913  gcc/config/microblaze/microblaze-protos.h
  f7bed44c80aaefbbda5efbce9514615a  gcc/config/microblaze/microblaze.cc
  416e7e40813d736926bb6a4f4b386070  gcc/config/microblaze/microblaze.h
! c1c22de89195665e34ef0c62df06069a  gcc/config/microblaze/microblaze.md
  1bfdc8ff504b1a00dc9e86930fd88313  gcc/config/microblaze/microblaze.opt
  b068232199fc8154ef950e53bf98f53d  gcc/config/microblaze/microblaze.opt.urls
  8d75c5f60841931e2de39df941a9975c  gcc/config/microblaze/predicates.md
*************** b387f44c9f6daa48b14d057ccae84727  gcc/co
*** 4888,4910 ****
  958232e96bda3ed0b2a13a05b79de780  gcc/config/newlib-stdint.h
  d5fbbf2154f81230db9bf181bb64b2d6  gcc/config/nvptx/gen-copyright.sh
  95aea124a7e2233915c866d785e70014  gcc/config/nvptx/gen-h.sh
! ddd6087651a73d039e839dcd0722283c  gcc/config/nvptx/gen-multilib-matches-tests
  773f9ddb2d6daa9a87367bb5978fb120  gcc/config/nvptx/gen-multilib-matches.sh
  8d99acc8e8841a9482912b9cac4e9211  gcc/config/nvptx/gen-omp-device-properties.sh
  b6c2f348186a23ff9ae8614c94745544  gcc/config/nvptx/gen-opt.sh
  488aef749fee123f498a1af0c59ee6f7  gcc/config/nvptx/mkoffload.cc
  503652934e86bb0ee0adf7b3b5e3f96c  gcc/config/nvptx/nvptx-c.cc
! eaea0887741978fc886e3e6dea81f86d  gcc/config/nvptx/nvptx-gen.h
! 1ff3f1d071bd0afd739a4bf26f4bca97  gcc/config/nvptx/nvptx-gen.opt
  bbb2a2cf5c79743f967571a1b148fa76  gcc/config/nvptx/nvptx-gen.opt.urls
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! f24878eb3d78fd9dde9199b2d34bb7c0  gcc/config/nvptx/nvptx-opts.h
  5ffc066c68d4afbfd07cc9455e6c32f8  gcc/config/nvptx/nvptx-protos.h
! e8a3a49db2057340b383556c9f01ca93  gcc/config/nvptx/nvptx-sm.def
! fdff78402fc7629e867c4da7f6b5c242  gcc/config/nvptx/nvptx.cc
! 1962ec9fc83ea07e67ce77f805096639  gcc/config/nvptx/nvptx.h
  b73220c606bf6c1705b780468fa1a60b  gcc/config/nvptx/nvptx.md
! 66df8efb52c37638c3e5f523adba27cc  gcc/config/nvptx/nvptx.opt
  f5c35e6fc1338d61e80f525ad1d27ead  gcc/config/nvptx/nvptx.opt.urls
  6dfcaf98ccebde10c0048561ac4b5a75  gcc/config/nvptx/offload.h
  e5b7e572a77f7a504a29fda1e6e163d9  gcc/config/nvptx/t-nvptx
--- 4889,4911 ----
  958232e96bda3ed0b2a13a05b79de780  gcc/config/newlib-stdint.h
  d5fbbf2154f81230db9bf181bb64b2d6  gcc/config/nvptx/gen-copyright.sh
  95aea124a7e2233915c866d785e70014  gcc/config/nvptx/gen-h.sh
! e34ae1cd304d16ac7997906b5278c0cc  gcc/config/nvptx/gen-multilib-matches-tests
  773f9ddb2d6daa9a87367bb5978fb120  gcc/config/nvptx/gen-multilib-matches.sh
  8d99acc8e8841a9482912b9cac4e9211  gcc/config/nvptx/gen-omp-device-properties.sh
  b6c2f348186a23ff9ae8614c94745544  gcc/config/nvptx/gen-opt.sh
  488aef749fee123f498a1af0c59ee6f7  gcc/config/nvptx/mkoffload.cc
  503652934e86bb0ee0adf7b3b5e3f96c  gcc/config/nvptx/nvptx-c.cc
! 556e8f322bf36874535c7c5f2733d9a1  gcc/config/nvptx/nvptx-gen.h
! 5cf5bb2519176b35b1e882ddec0ae148  gcc/config/nvptx/nvptx-gen.opt
  bbb2a2cf5c79743f967571a1b148fa76  gcc/config/nvptx/nvptx-gen.opt.urls
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! 93a447d34921667614245e6a67c3de17  gcc/config/nvptx/nvptx-opts.h
  5ffc066c68d4afbfd07cc9455e6c32f8  gcc/config/nvptx/nvptx-protos.h
! fbb7de1e9945c721671a67496fd85db0  gcc/config/nvptx/nvptx-sm.def
! 903915965bdde1329ebfffa2e9710418  gcc/config/nvptx/nvptx.cc
! e2305d74b98283e4f9a780049b4f3c82  gcc/config/nvptx/nvptx.h
  b73220c606bf6c1705b780468fa1a60b  gcc/config/nvptx/nvptx.md
! 7ef196e33d0fcc3be452238c20b9841d  gcc/config/nvptx/nvptx.opt
  f5c35e6fc1338d61e80f525ad1d27ead  gcc/config/nvptx/nvptx.opt.urls
  6dfcaf98ccebde10c0048561ac4b5a75  gcc/config/nvptx/offload.h
  e5b7e572a77f7a504a29fda1e6e163d9  gcc/config/nvptx/t-nvptx
*************** 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
! dcd7eff216d6d893f847b8dbd9292869  gcc/config/riscv/riscv.cc
  07078d74a9a03a5ff125a7847cf8dff7  gcc/config/riscv/riscv.h
  69bf57d0406b6ab66b5fd796932171e7  gcc/config/riscv/riscv.md
  c721fa1217a74f723ccf84813f721944  gcc/config/riscv/riscv.opt
--- 5095,5101 ----
  75866c86ec05a7abe2fa3f55828938b0  gcc/config/riscv/riscv-vsetvl.cc
  10ae51c30c9b8e6dce66f20016fae344  gcc/config/riscv/riscv-vsetvl.def
  85dee253312a7f85a1d4f8554a601105  gcc/config/riscv/riscv-zicfilp.cc
! 93f111eaa1fc138aac0fc8cf4d666ff8  gcc/config/riscv/riscv.cc
  07078d74a9a03a5ff125a7847cf8dff7  gcc/config/riscv/riscv.h
  69bf57d0406b6ab66b5fd796932171e7  gcc/config/riscv/riscv.md
  c721fa1217a74f723ccf84813f721944  gcc/config/riscv/riscv.opt
*************** e4b02417cb4df9d5a76c80b1ff2a9f74  gcc/co
*** 5220,5226 ****
  6368ef27960f047d29859f35015459ad  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
  bafcfaea28ea830127780e11ee8484b7  gcc/config/rs6000/mm_malloc.h
! 0fd08c4f63e3ccfadfb9f867de5151a7  gcc/config/rs6000/mma.md
  666740adf812d1114cd095f0155311d5  gcc/config/rs6000/mmintrin.h
  83a4c3ddfdabef774f4ae2987049a6d0  gcc/config/rs6000/mpc.md
  0f91e4ac20f298ae22704f7b3d0560cf  gcc/config/rs6000/netbsd.h
--- 5221,5227 ----
  6368ef27960f047d29859f35015459ad  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
  bafcfaea28ea830127780e11ee8484b7  gcc/config/rs6000/mm_malloc.h
! 6e0671bcc17a9ce56b8bf4c08f887b32  gcc/config/rs6000/mma.md
  666740adf812d1114cd095f0155311d5  gcc/config/rs6000/mmintrin.h
  83a4c3ddfdabef774f4ae2987049a6d0  gcc/config/rs6000/mpc.md
  0f91e4ac20f298ae22704f7b3d0560cf  gcc/config/rs6000/netbsd.h
*************** db237fc1717a4075e7b9480205a32fd5  gcc/co
*** 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
--- 5242,5250 ----
  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
*************** 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
! 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
--- 5255,5269 ----
  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
*************** d57d0eb0a8e2193f5cef2aaf1ad6d722  gcc/co
*** 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
--- 5274,5280 ----
  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
*************** ea440bcad8a276afecfcff0ce6aae6fe  gcc/co
*** 5361,5367 ****
  14c40f85d99aad740c052f55703baf70  gcc/config/s390/s390-opts.h
  aa396b24681954cbcd0cd64bf19d469c  gcc/config/s390/s390-passes.def
  4a9d0190b77f29fbb14fa9706732f297  gcc/config/s390/s390-protos.h
! 10d73d15e8dd5f868264b2b39dfbeac9  gcc/config/s390/s390.cc
  c945413f70f4d804e12812f916b8d87b  gcc/config/s390/s390.h
  444b1475af5bc7cb791449a4e0359625  gcc/config/s390/s390.md
  ae1754efd7785ad08c6cc930dd08c7ae  gcc/config/s390/s390.opt
--- 5362,5368 ----
  14c40f85d99aad740c052f55703baf70  gcc/config/s390/s390-opts.h
  aa396b24681954cbcd0cd64bf19d469c  gcc/config/s390/s390-passes.def
  4a9d0190b77f29fbb14fa9706732f297  gcc/config/s390/s390-protos.h
! 6872d93a3552eb43cdca7fe5001f5dcc  gcc/config/s390/s390.cc
  c945413f70f4d804e12812f916b8d87b  gcc/config/s390/s390.h
  444b1475af5bc7cb791449a4e0359625  gcc/config/s390/s390.md
  ae1754efd7785ad08c6cc930dd08c7ae  gcc/config/s390/s390.opt
*************** af7cbbb73703105f16deabe09027ecda  gcc/co
*** 5492,5498 ****
  45ada8c99134b9ceb75aa25b8e3f2130  gcc/config/stormy16/predicates.md
  b45435094a91c9eec80ff3a7eb142b80  gcc/config/stormy16/stormy-abi
  8567f7697276e91fb78ecf8d79c8c227  gcc/config/stormy16/stormy16-protos.h
! d455c2b457a0ef7189dc5eb2de5fc426  gcc/config/stormy16/stormy16.cc
  abde77f75ec4cefb2f0eb3d2c6cf77b7  gcc/config/stormy16/stormy16.h
  bbad5b8a70d79255de83d544195f0790  gcc/config/stormy16/stormy16.md
  51840716cdce43e88ec11c16eb350360  gcc/config/stormy16/stormy16.opt
--- 5493,5499 ----
  45ada8c99134b9ceb75aa25b8e3f2130  gcc/config/stormy16/predicates.md
  b45435094a91c9eec80ff3a7eb142b80  gcc/config/stormy16/stormy-abi
  8567f7697276e91fb78ecf8d79c8c227  gcc/config/stormy16/stormy16-protos.h
! e8e8e9d9ac77a373e64a4713263b87e2  gcc/config/stormy16/stormy16.cc
  abde77f75ec4cefb2f0eb3d2c6cf77b7  gcc/config/stormy16/stormy16.h
  bbad5b8a70d79255de83d544195f0790  gcc/config/stormy16/stormy16.md
  51840716cdce43e88ec11c16eb350360  gcc/config/stormy16/stormy16.opt
*************** dbd5811fcd8a1caf49e4e9091afdc18c  gcc/co
*** 5626,5632 ****
  9a9ea234526c2b6ec2dde5659d16935c  gcc/config/xtensa/xtensa-opts.h
  f11b25bf61cd607f1829b2d5c5d306b9  gcc/config/xtensa/xtensa-passes.def
  a071a2118672dd214a5b6970d7c3faca  gcc/config/xtensa/xtensa-protos.h
! e7f9d18383589514c41ef143a9ae3b81  gcc/config/xtensa/xtensa.cc
  c60f07bed189e2a8fb8abfe19368e9f9  gcc/config/xtensa/xtensa.h
  708d79fd2376cbc3e1fc949938300b92  gcc/config/xtensa/xtensa.md
  093588e637649f5260b04ad13fe609e6  gcc/config/xtensa/xtensa.opt
--- 5627,5633 ----
  9a9ea234526c2b6ec2dde5659d16935c  gcc/config/xtensa/xtensa-opts.h
  f11b25bf61cd607f1829b2d5c5d306b9  gcc/config/xtensa/xtensa-passes.def
  a071a2118672dd214a5b6970d7c3faca  gcc/config/xtensa/xtensa-protos.h
! 5b49fab80bf7b8a969d748d0d56ef024  gcc/config/xtensa/xtensa.cc
  c60f07bed189e2a8fb8abfe19368e9f9  gcc/config/xtensa/xtensa.h
  708d79fd2376cbc3e1fc949938300b92  gcc/config/xtensa/xtensa.md
  093588e637649f5260b04ad13fe609e6  gcc/config/xtensa/xtensa.opt
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5643,5649 ****
  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
--- 5644,5650 ----
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 1a62de232ed176418ec58400cd1c3e80  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** d9b8a76735523ab737e8778b90397d97  gcc/cp
*** 5685,5695 ****
  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
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
  1595ee677441bff50bf2ed88323963e1  gcc/cp/cp-gimplify.cc
  5deb6a9935508ca534b8ee8e84b2a1cc  gcc/cp/cp-lang.cc
--- 5686,5696 ----
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
  4a5a02469458f5a17e932ae0133f2ce7  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! 61fd8439d18479805615b88e87114387  gcc/cp/constexpr.cc
! 44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
! 0ca777b5342789123c89d75974b23957  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
! 09f3bdbdbcddf3dc68d265ab0a59a38e  gcc/cp/coroutines.cc
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
  1595ee677441bff50bf2ed88323963e1  gcc/cp/cp-gimplify.cc
  5deb6a9935508ca534b8ee8e84b2a1cc  gcc/cp/cp-lang.cc
*************** eba8d8a1725223519fba5d4d69afd5c9  gcc/cp
*** 5698,5725 ****
  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
! ecc52c9b0d629f940b5f324e0a0ae01a  gcc/cp/error.cc
  59d3d272a504a462c1f7081637e7f3e5  gcc/cp/except.cc
  70f36ac126d5a18ee7be5d40cf58c2c9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
  014d3891b4172014c0ad5386223c4f4c  gcc/cp/g++spec.cc
  a29b3e9192657e81a1574fb99466348d  gcc/cp/gen-cxxapi-file.py
  b9032a113a137533247a90fda508e897  gcc/cp/init.cc
! b3ff7f1e11444c1a8a1b9471e54c8cdd  gcc/cp/lambda.cc
  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
--- 5699,5726 ----
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! a6f75b797a91a72e5d42f363a9415abe  gcc/cp/cp-tree.h
  e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
  0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 1009d05a70574e332ec53043c4e16024  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
! e3767c932e8101295ee13bd111b9b1de  gcc/cp/error.cc
  59d3d272a504a462c1f7081637e7f3e5  gcc/cp/except.cc
  70f36ac126d5a18ee7be5d40cf58c2c9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
  014d3891b4172014c0ad5386223c4f4c  gcc/cp/g++spec.cc
  a29b3e9192657e81a1574fb99466348d  gcc/cp/gen-cxxapi-file.py
  b9032a113a137533247a90fda508e897  gcc/cp/init.cc
! 99eccf5dfaca355dd6a7dc943793429f  gcc/cp/lambda.cc
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
! ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 6d1dfdccbfbfe5467a281664d8fbe792  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
*************** fd84e5e55d97c9bbc1f59762ec2539b3  gcc/cp
*** 5731,5749 ****
  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
--- 5732,5750 ----
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! fee1409e24c52b674844fa9d765dd505  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! 235100c2fb7e08475db7efe3c719ece0  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 9c789ef685f04e1830f70d6a4f66393e  gcc/cp/reflect.cc
  97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 9790807578e1c4db5aa20758424fb3ef  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 0036291070f1302b372562c75f48cc5d  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
! 1e689d5f7a1facc6ce4b51aaa96636aa  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
  12d19e5abc1e436004b8885cde4765f0  gcc/cp/vtable-class-hierarchy.cc
  556f791fb43a25890d32717884f67cd1  gcc/cppbuiltin.cc
*************** ed044462caa5bbab93e33fd297bc5d7c  gcc/cp
*** 5753,5759 ****
  39b4704938fb780fdd57ddb7cbb0fdba  gcc/cprop.cc
  bb146ea57855f57a97f23f7c748b05ed  gcc/crc-verification.cc
  b7bf54d1a28938f620902d5d360e7000  gcc/crc-verification.h
! bcc29cbbf3a7aaec0df9ce9e8dc77504  gcc/cse.cc
  d8e63039ff02f156025e0e64f467b032  gcc/cselib.cc
  f4482f497f6e3a2eae101f16c79b4b27  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
--- 5754,5760 ----
  39b4704938fb780fdd57ddb7cbb0fdba  gcc/cprop.cc
  bb146ea57855f57a97f23f7c748b05ed  gcc/crc-verification.cc
  b7bf54d1a28938f620902d5d360e7000  gcc/crc-verification.h
! 2810ee7d4e0429611e11776e5fc5e689  gcc/cse.cc
  d8e63039ff02f156025e0e64f467b032  gcc/cselib.cc
  f4482f497f6e3a2eae101f16c79b4b27  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
*************** 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
! b4267bd14801e463d0226e60478236eb  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
--- 5767,5773 ----
  86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
  cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
  58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! e9b5090396eb2bc9c5edc4f6355e7720  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
*************** e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/
*** 5790,5798 ****
  d916ef405eeaa878b1c2ef9dcf535196  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
  5170dc7fc8ad21399dd35a73673a1b1b  gcc/d/config-lang.in
! e3a6f0edd05f379bdf9c3d094c6b2a78  gcc/d/d-attribs.cc
  b28e281d951471e031670e95fba8014d  gcc/d/d-builtins.cc
! 7fe09cb66d1146341a2d54ab462ad6d3  gcc/d/d-codegen.cc
  f0a6fa18f331a5771005c3b319e1d6d9  gcc/d/d-compiler.cc
  97457532f0c348f5b93add8aeb0134e1  gcc/d/d-convert.cc
  62c9322bb6952c891db5089737edce22  gcc/d/d-ctfloat.cc
--- 5791,5799 ----
  d916ef405eeaa878b1c2ef9dcf535196  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
  5170dc7fc8ad21399dd35a73673a1b1b  gcc/d/config-lang.in
! ced9be7856f049f3b83bdbd9f6038f42  gcc/d/d-attribs.cc
  b28e281d951471e031670e95fba8014d  gcc/d/d-builtins.cc
! 4df48f1f7da1ca00a3d7d39846e90221  gcc/d/d-codegen.cc
  f0a6fa18f331a5771005c3b319e1d6d9  gcc/d/d-compiler.cc
  97457532f0c348f5b93add8aeb0134e1  gcc/d/d-convert.cc
  62c9322bb6952c891db5089737edce22  gcc/d/d-ctfloat.cc
*************** ff0e8b453455e8497536165eae7c1f31  gcc/d/
*** 5811,5819 ****
  1fa6cd16c5a2906d3f842bbcc5297074  gcc/d/d-target.def
  0cbefb1fe5798619dd31fbc791502b11  gcc/d/d-target.h
  96ebb03b303e0c71e962dea84e5154e5  gcc/d/d-tree.def
! 9ac50a388702c4769cf02f0464df5e2d  gcc/d/d-tree.h
  e15dc7e6bb692e768b46ebcc8ec185d4  gcc/d/decl.cc
! 15ee3aa574b8022c049f9e20ca705051  gcc/d/dmd/MERGE
  19fa8b50b219a53d3fa7d1c6680ed3e2  gcc/d/dmd/README.md
  d08a6d91478fcd3badef10158d94e3f0  gcc/d/dmd/VERSION
  36493396b4a254b183eb366b1408b69f  gcc/d/dmd/access.d
--- 5812,5820 ----
  1fa6cd16c5a2906d3f842bbcc5297074  gcc/d/d-target.def
  0cbefb1fe5798619dd31fbc791502b11  gcc/d/d-target.h
  96ebb03b303e0c71e962dea84e5154e5  gcc/d/d-tree.def
! cd9e6df3af560a6961ad808c97e5de7a  gcc/d/d-tree.h
  e15dc7e6bb692e768b46ebcc8ec185d4  gcc/d/decl.cc
! a627eff632d29d573d3f04376091c75c  gcc/d/dmd/MERGE
  19fa8b50b219a53d3fa7d1c6680ed3e2  gcc/d/dmd/README.md
  d08a6d91478fcd3badef10158d94e3f0  gcc/d/dmd/VERSION
  36493396b4a254b183eb366b1408b69f  gcc/d/dmd/access.d
*************** bd6e08c968f0146dd91f685d0f8c7ab0  gcc/d/
*** 5850,5856 ****
  7c61ea8b18b3bbff0a3f82144e9389b8  gcc/d/dmd/compiler.h
  7e7cf4eebdb695b610f50e20a8f8f17a  gcc/d/dmd/cond.d
  ddc0a699500ea63584dc7112b45f5bff  gcc/d/dmd/cond.h
! aa6993539eee5d117549ea1ac019d398  gcc/d/dmd/constfold.d
  dc17b7847ad48eac07c0129d42c2de49  gcc/d/dmd/cparse.d
  1ac8d84f6ae5c2322a5b1ac2dad789da  gcc/d/dmd/ctfe.h
  a902f2f6d89c5ccabdd31029b6f870ed  gcc/d/dmd/ctfeexpr.d
--- 5851,5857 ----
  7c61ea8b18b3bbff0a3f82144e9389b8  gcc/d/dmd/compiler.h
  7e7cf4eebdb695b610f50e20a8f8f17a  gcc/d/dmd/cond.d
  ddc0a699500ea63584dc7112b45f5bff  gcc/d/dmd/cond.h
! d5316f2db44e9f727a7852c06047c5f4  gcc/d/dmd/constfold.d
  dc17b7847ad48eac07c0129d42c2de49  gcc/d/dmd/cparse.d
  1ac8d84f6ae5c2322a5b1ac2dad789da  gcc/d/dmd/ctfe.h
  a902f2f6d89c5ccabdd31029b6f870ed  gcc/d/dmd/ctfeexpr.d
*************** dbb9cf409aac28fd9fee2440c81ae1b2  gcc/d/
*** 5859,5865 ****
  e99136fed5cd6eaf91e3d9828623b84b  gcc/d/dmd/dcast.d
  be352ea1f39d9274f982d4d0b828f812  gcc/d/dmd/dclass.d
  67dadc1a3b5dbb68f28f315b406e7a43  gcc/d/dmd/declaration.d
! 391ddc149d9292d83ad528439d96f06a  gcc/d/dmd/declaration.h
  3094ef047c625363522838160ce19cc7  gcc/d/dmd/delegatize.d
  581e89756598665b364d45d94772ca78  gcc/d/dmd/denum.d
  8aec6d8482649cf6ca597ef650a703ae  gcc/d/dmd/deps.d
--- 5860,5866 ----
  e99136fed5cd6eaf91e3d9828623b84b  gcc/d/dmd/dcast.d
  be352ea1f39d9274f982d4d0b828f812  gcc/d/dmd/dclass.d
  67dadc1a3b5dbb68f28f315b406e7a43  gcc/d/dmd/declaration.d
! b8c73f1d92d5c88bf5cf934f73936ac5  gcc/d/dmd/declaration.h
  3094ef047c625363522838160ce19cc7  gcc/d/dmd/delegatize.d
  581e89756598665b364d45d94772ca78  gcc/d/dmd/denum.d
  8aec6d8482649cf6ca597ef650a703ae  gcc/d/dmd/deps.d
*************** f5414730b2ea5603194a38706e447d91  gcc/d/
*** 5873,5879 ****
  fc621a0e0e8e2f2b6e1424ee1b40d9bf  gcc/d/dmd/dstruct.d
  76083e9697702b812cde64325b97752c  gcc/d/dmd/dsymbol.d
  6fa1f90f158e42a3721b6ddbf5379469  gcc/d/dmd/dsymbol.h
! fda0d4a2bbb79cb10450718ed8b52f28  gcc/d/dmd/dsymbolsem.d
  2709aa7f97dd0cae93d25d05e5c930f9  gcc/d/dmd/dtemplate.d
  10d5f83078185d726822de2fdd2c22c2  gcc/d/dmd/dtoh.d
  a024ac31b1708f7009771f94ee46876a  gcc/d/dmd/dversion.d
--- 5874,5880 ----
  fc621a0e0e8e2f2b6e1424ee1b40d9bf  gcc/d/dmd/dstruct.d
  76083e9697702b812cde64325b97752c  gcc/d/dmd/dsymbol.d
  6fa1f90f158e42a3721b6ddbf5379469  gcc/d/dmd/dsymbol.h
! 8e87ad1e9432789059cbf536024bc92f  gcc/d/dmd/dsymbolsem.d
  2709aa7f97dd0cae93d25d05e5c930f9  gcc/d/dmd/dtemplate.d
  10d5f83078185d726822de2fdd2c22c2  gcc/d/dmd/dtoh.d
  a024ac31b1708f7009771f94ee46876a  gcc/d/dmd/dversion.d
*************** fd76397048175f21bab28e9028a8bcf0  gcc/d/
*** 5890,5897 ****
  3627f00ed08270013ed3d56ba2c8306a  gcc/d/dmd/file_manager.d
  da0aef14ed6bcca1855c5f574ac9518b  gcc/d/dmd/func.d
  856e4c7ce2db4e5fb9b7eb1f8a13a960  gcc/d/dmd/funcsem.d
! ba15fde43ff2070240500fc9278ca8c3  gcc/d/dmd/globals.d
! 80441f95e66217a6a95ea311959f8008  gcc/d/dmd/globals.h
  ce7a3a24c38a694d1ff58f85319702ac  gcc/d/dmd/hdrgen.d
  eceb03805de66aa33b88db982b080ccd  gcc/d/dmd/hdrgen.h
  3a888a438cb7f683787a824f06cd118a  gcc/d/dmd/iasm/gcc.d
--- 5891,5898 ----
  3627f00ed08270013ed3d56ba2c8306a  gcc/d/dmd/file_manager.d
  da0aef14ed6bcca1855c5f574ac9518b  gcc/d/dmd/func.d
  856e4c7ce2db4e5fb9b7eb1f8a13a960  gcc/d/dmd/funcsem.d
! b53fff6edbda5e4c5d8d08406bbea33c  gcc/d/dmd/globals.d
! 61b9a1b0b2d3a6dd72a9f47570101fec  gcc/d/dmd/globals.h
  ce7a3a24c38a694d1ff58f85319702ac  gcc/d/dmd/hdrgen.d
  eceb03805de66aa33b88db982b080ccd  gcc/d/dmd/hdrgen.h
  3a888a438cb7f683787a824f06cd118a  gcc/d/dmd/iasm/gcc.d
*************** ce9195d35ab9e8e79dc54f99c5c574a2  gcc/d/
*** 5965,5977 ****
  d325426ed5c2e0f1cff209014707d2cd  gcc/d/dmd/rootobject.d
  b7f106fff78a53f6592a88162c5f27f5  gcc/d/dmd/rootobject.h
  613ca0713c5de0beaa549abecdce52b9  gcc/d/dmd/safe.d
! 5de1bb484b07883e38e43e565d22f4e0  gcc/d/dmd/scope.h
  f0b8e6149d2f938f358a894276fbc922  gcc/d/dmd/semantic2.d
  066195303caf1139dee33c226b3c42ac  gcc/d/dmd/semantic3.d
  be83e2a68c2785d4934d7061b2438aab  gcc/d/dmd/sideeffect.d
  9b5e1295542ccce933f6885751dce523  gcc/d/dmd/statement.d
  c02dff82e02e13a144394c6cc86455e2  gcc/d/dmd/statement.h
! f5c9810e273a14ef4235a5fc3d528537  gcc/d/dmd/statementsem.d
  12804b7fd378e16447bc2d60700d48ba  gcc/d/dmd/staticassert.d
  bcc714ee56062210a0882bd13781048f  gcc/d/dmd/staticassert.h
  b705fcc699b639fdeafc149c372d1909  gcc/d/dmd/staticcond.d
--- 5966,5978 ----
  d325426ed5c2e0f1cff209014707d2cd  gcc/d/dmd/rootobject.d
  b7f106fff78a53f6592a88162c5f27f5  gcc/d/dmd/rootobject.h
  613ca0713c5de0beaa549abecdce52b9  gcc/d/dmd/safe.d
! cd6fe88e29a5436c106f650119e515bc  gcc/d/dmd/scope.h
  f0b8e6149d2f938f358a894276fbc922  gcc/d/dmd/semantic2.d
  066195303caf1139dee33c226b3c42ac  gcc/d/dmd/semantic3.d
  be83e2a68c2785d4934d7061b2438aab  gcc/d/dmd/sideeffect.d
  9b5e1295542ccce933f6885751dce523  gcc/d/dmd/statement.d
  c02dff82e02e13a144394c6cc86455e2  gcc/d/dmd/statement.h
! 08ce728ca5aa8705f2059333340c9c9b  gcc/d/dmd/statementsem.d
  12804b7fd378e16447bc2d60700d48ba  gcc/d/dmd/staticassert.d
  bcc714ee56062210a0882bd13781048f  gcc/d/dmd/staticassert.h
  b705fcc699b639fdeafc149c372d1909  gcc/d/dmd/staticcond.d
*************** f954f32f83768ad028b98e373a6f69e1  gcc/d/
*** 5981,5992 ****
  c9965b88277fa93899b40afd0559c8b7  gcc/d/dmd/targetcompiler.d
  7cb2b265ffd904798c9be00eb12a199e  gcc/d/dmd/template.h
  3b365c5d7bdaf6f7e9198e68c628aea7  gcc/d/dmd/templateparamsem.d
! 832a1b1566d281c3ce2e2e35d9eb3854  gcc/d/dmd/templatesem.d
  00e876f8ff21c3623ce98ba78cbcd0d5  gcc/d/dmd/timetrace.d
  2ceab2ee057c61d33fbab61bb85dd5d3  gcc/d/dmd/tokens.d
  ecc4415ecfef96a7ba80b0266535fb21  gcc/d/dmd/tokens.h
  82cfc239acd3f554f33f19b1fa5b9a01  gcc/d/dmd/traits.d
! 367c2f75b7f8d2f274c61b1970e010d1  gcc/d/dmd/typesem.d
  a8eb1da7a97ae0b75c2221de62b0b989  gcc/d/dmd/typinf.d
  584b6655b333a44de3fde735473d1002  gcc/d/dmd/typinf.h
  007d2370bbc69040e559cf4caabaf715  gcc/d/dmd/utils.d
--- 5982,5993 ----
  c9965b88277fa93899b40afd0559c8b7  gcc/d/dmd/targetcompiler.d
  7cb2b265ffd904798c9be00eb12a199e  gcc/d/dmd/template.h
  3b365c5d7bdaf6f7e9198e68c628aea7  gcc/d/dmd/templateparamsem.d
! 0cd8abbe997d4d050262beb02dcdf996  gcc/d/dmd/templatesem.d
  00e876f8ff21c3623ce98ba78cbcd0d5  gcc/d/dmd/timetrace.d
  2ceab2ee057c61d33fbab61bb85dd5d3  gcc/d/dmd/tokens.d
  ecc4415ecfef96a7ba80b0266535fb21  gcc/d/dmd/tokens.h
  82cfc239acd3f554f33f19b1fa5b9a01  gcc/d/dmd/traits.d
! e248cadf3f21cd30cab98b387cfe8078  gcc/d/dmd/typesem.d
  a8eb1da7a97ae0b75c2221de62b0b989  gcc/d/dmd/typinf.d
  584b6655b333a44de3fde735473d1002  gcc/d/dmd/typinf.h
  007d2370bbc69040e559cf4caabaf715  gcc/d/dmd/utils.d
*************** ce69c50b449a66ecf52a9dc705333fa4  gcc/d/
*** 5999,6005 ****
  82f5db54c1a9b627caf93de77ba51950  gcc/d/dmd/visitor/postorder.d
  c5e5b33d24d8d54d0db24ec6d8808573  gcc/d/dmd/visitor/statement_rewrite_walker.d
  1cbd9c1c0ec261f10e9d9443fc16f987  gcc/d/dmd/visitor/transitive.d
! 8006c65b71eeae0f58d7e35315aa72e6  gcc/d/expr.cc
  ae98ef7253f51b9c2283da08c3df60b1  gcc/d/gdc.texi
  fe75e0460d453b2242165e5b49a6f5dc  gcc/d/implement-d.texi
  a1264deb8aa43914b45e5a16767cc28b  gcc/d/imports.cc
--- 6000,6006 ----
  82f5db54c1a9b627caf93de77ba51950  gcc/d/dmd/visitor/postorder.d
  c5e5b33d24d8d54d0db24ec6d8808573  gcc/d/dmd/visitor/statement_rewrite_walker.d
  1cbd9c1c0ec261f10e9d9443fc16f987  gcc/d/dmd/visitor/transitive.d
! e36e791893e4b1fa3bbda359ec7176e4  gcc/d/expr.cc
  ae98ef7253f51b9c2283da08c3df60b1  gcc/d/gdc.texi
  fe75e0460d453b2242165e5b49a6f5dc  gcc/d/implement-d.texi
  a1264deb8aa43914b45e5a16767cc28b  gcc/d/imports.cc
*************** ee65c9e3e7c3fb1fd0128c23f4130e51  gcc/do
*** 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
--- 6129,6135 ----
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! 55ede2729a26890ffb4d407525a1d7d8  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
! 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
--- 6152,6160 ----
  37d898a82683588b62cca104098ad182  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! e7629f6355c3902826e219f4c9bfae3a  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 796fb7b9b100b5c5c650f51ccdc09946  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** b12261ad56bcabd07b4a1b739f271527  gcc/do
*** 6208,6217 ****
  244685a8e65d2616e55749c070fe9911  gcc/doc/sourcebuild.texi
  9b58fbc10917d12008925e09d91cab55  gcc/doc/specs.texi
  d2b53a62ec4e23a8e4cbe16d2843c100  gcc/doc/standards.texi
! 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
--- 6209,6218 ----
  244685a8e65d2616e55749c070fe9911  gcc/doc/sourcebuild.texi
  9b58fbc10917d12008925e09d91cab55  gcc/doc/specs.texi
  d2b53a62ec4e23a8e4cbe16d2843c100  gcc/doc/standards.texi
! c62ac968e3288a53eebcf150e3d453a9  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
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 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
--- 6269,6275 ----
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! 478c70d364a5d8cebfc1dbfdbff145c5  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** edad5176d72953374d67effefef0a605  gcc/fo
*** 6310,6316 ****
  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
--- 6311,6317 ----
  48e7987762051d8cf68633af2633e50f  gcc/fortran/cpp.h
  213bc611adee1d275a412b3ed4886e79  gcc/fortran/data.cc
  ac7321680382b23989a6637e02dfb80e  gcc/fortran/data.h
! 172e32f224badeef54997bdf6521a592  gcc/fortran/decl.cc
  92ac8b7c0f5e7976d4cd1297e9eb18c1  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
  d159d22a53e7b0f3fc49d23c3a112081  gcc/fortran/dump-parse-tree.cc
*************** afb07146daad7f36a59c52e053f6772f  gcc/fo
*** 6327,6333 ****
  7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
  285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
  3db093e57d8256b248d0bdb6fdaf42b4  gcc/fortran/intrinsic.texi
! d2a44bc3fbf0547319870426dd5da230  gcc/fortran/invoke.texi
  381e1132c2b9f3171ccfce24fbd47ba2  gcc/fortran/io.cc
  02af2e093ad4f92649a6370fa6dc3215  gcc/fortran/ioparm.def
  1e9a62cdd76fcac49d91728090a8b2f6  gcc/fortran/iresolve.cc
--- 6328,6334 ----
  7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
  285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
  3db093e57d8256b248d0bdb6fdaf42b4  gcc/fortran/intrinsic.texi
! c0b28df69feb22bcafd8aac543dd4fba  gcc/fortran/invoke.texi
  381e1132c2b9f3171ccfce24fbd47ba2  gcc/fortran/io.cc
  02af2e093ad4f92649a6370fa6dc3215  gcc/fortran/ioparm.def
  1e9a62cdd76fcac49d91728090a8b2f6  gcc/fortran/iresolve.cc
*************** d2a44bc3fbf0547319870426dd5da230  gcc/fo
*** 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
--- 6336,6342 ----
  e5c0565c05cf7375c9978273f2e553e7  gcc/fortran/iso-fortran-env.def
  20a111338bfdbe210a5826e590844f81  gcc/fortran/lang-specs.h
  6c8e23a76ef7d1e3480d2026a438a31e  gcc/fortran/lang.opt
! d00392d3f6683071d547134f20687f32  gcc/fortran/lang.opt.urls
  c35102e7caaf40998fe2ead86d2716da  gcc/fortran/libgfortran.h
  66af5c8c6003d01ae9626e3792da6fdb  gcc/fortran/match.cc
  f7735c64af748cdef5caffae58a94749  gcc/fortran/match.h
*************** a465af66dbc504ea8aab1ad5d516072d  gcc/fo
*** 6348,6354 ****
  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
--- 6349,6355 ----
  22050427a75e58c301664b6859f72718  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  f8f17e966c9b06f3143a910582383fb7  gcc/fortran/primary.cc
! 607d6f18f8de6cc91165f7a125c5cd7e  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
*************** a0c40b654df0b5c5213047d26e48e97a  gcc/fo
*** 6365,6371 ****
  563178b5cc38d4fc4732944fd4785b51  gcc/fortran/trans-expr.cc
  1e9019ec9c08335a5b10db9869e2534c  gcc/fortran/trans-intrinsic.cc
  9d578d72e2bcb2e0fc0dc71c709c80f8  gcc/fortran/trans-io.cc
! 73efba48d12b420946095f8043c6f5ec  gcc/fortran/trans-openmp.cc
  974f8aeec761eac4ee1be974addd51d5  gcc/fortran/trans-stmt.cc
  6fbc90714f9730e84515bbaadff313f9  gcc/fortran/trans-stmt.h
  f8cac5e2268c177aff676d2dbb690f51  gcc/fortran/trans-types.cc
--- 6366,6372 ----
  563178b5cc38d4fc4732944fd4785b51  gcc/fortran/trans-expr.cc
  1e9019ec9c08335a5b10db9869e2534c  gcc/fortran/trans-intrinsic.cc
  9d578d72e2bcb2e0fc0dc71c709c80f8  gcc/fortran/trans-io.cc
! a7dd5c301725a5395b938c4328a5e0d3  gcc/fortran/trans-openmp.cc
  974f8aeec761eac4ee1be974addd51d5  gcc/fortran/trans-stmt.cc
  6fbc90714f9730e84515bbaadff313f9  gcc/fortran/trans-stmt.h
  f8cac5e2268c177aff676d2dbb690f51  gcc/fortran/trans-types.cc
*************** af4a387aec960d3e8380f41c5d139097  gcc/gg
*** 6457,6463 ****
  0e83c85ff70314dbf36e2a5b6710eaaa  gcc/gimple-array-bounds.h
  17b0847ee6f3c161fae2a55c78f982ed  gcc/gimple-builder.cc
  e8ef831ecab58724c781ef6c239eb959  gcc/gimple-builder.h
! c786a045909d4b0717a3d5687e24dc62  gcc/gimple-crc-optimization.cc
  e33888307c479ce11d601ebd8fc8f0af  gcc/gimple-expr.cc
  61721564f913cdbebe438f7c378b316e  gcc/gimple-expr.h
  b75879478fadd54ee34b81fd544b7456  gcc/gimple-fold.cc
--- 6458,6464 ----
  0e83c85ff70314dbf36e2a5b6710eaaa  gcc/gimple-array-bounds.h
  17b0847ee6f3c161fae2a55c78f982ed  gcc/gimple-builder.cc
  e8ef831ecab58724c781ef6c239eb959  gcc/gimple-builder.h
! 98c92461c94c7a7e1f7c09e62e05167f  gcc/gimple-crc-optimization.cc
  e33888307c479ce11d601ebd8fc8f0af  gcc/gimple-expr.cc
  61721564f913cdbebe438f7c378b316e  gcc/gimple-expr.h
  b75879478fadd54ee34b81fd544b7456  gcc/gimple-fold.cc
*************** f1824ea9d0d35fb768daabd8649d44b3  gcc/gi
*** 6474,6480 ****
  b829ca99c85ee53d8741a9e6bd0842cc  gcc/gimple-loop-versioning.cc
  3c3cd33fb8d571f0cf6646b95fd1a87d  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 5d26ea438a8470b868bcee7d650f0429  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  e34c444c462ee07d9e772cc076c6ad83  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
--- 6475,6481 ----
  b829ca99c85ee53d8741a9e6bd0842cc  gcc/gimple-loop-versioning.cc
  3c3cd33fb8d571f0cf6646b95fd1a87d  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! efa3474c62dac9a051e1d562daf2649b  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  e34c444c462ee07d9e772cc076c6ad83  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
*************** e45cb6aa50c3ff1d1592d7f2758cb778  gcc/gi
*** 6506,6512 ****
  02777a8ae49f72253e52431084e1cf91  gcc/gimple-range.cc
  d7845f849ad3dd11fdee8ef672936b7e  gcc/gimple-range.h
  8a9bf24197a610cfba7953c1233dd5ef  gcc/gimple-ssa-backprop.cc
! eea2759af1703adad9975f6c60cb27bc  gcc/gimple-ssa-isolate-paths.cc
  841e25177d0ec3b994aade444aaf7d1f  gcc/gimple-ssa-nonnull-compare.cc
  a773a19ee9b5880dae21824c39a73876  gcc/gimple-ssa-pta-constraints.cc
  1a13540b90afbe02c088650d3cd0b617  gcc/gimple-ssa-pta-constraints.h
--- 6507,6513 ----
  02777a8ae49f72253e52431084e1cf91  gcc/gimple-range.cc
  d7845f849ad3dd11fdee8ef672936b7e  gcc/gimple-range.h
  8a9bf24197a610cfba7953c1233dd5ef  gcc/gimple-ssa-backprop.cc
! e1a7065df5a3fda33b25bbeef59fcf3c  gcc/gimple-ssa-isolate-paths.cc
  841e25177d0ec3b994aade444aaf7d1f  gcc/gimple-ssa-nonnull-compare.cc
  a773a19ee9b5880dae21824c39a73876  gcc/gimple-ssa-pta-constraints.cc
  1a13540b90afbe02c088650d3cd0b617  gcc/gimple-ssa-pta-constraints.h
*************** c7c9628cd16fe3e0263939ceb0a865fa  gcc/in
*** 6676,6684 ****
  8a34b6abb2591b8c30c7fb4187261ee3  gcc/intl.cc
  22c5866f6858fea288e5e2f1adc96e40  gcc/intl.h
  920db3effdd509146b3f00be906c0885  gcc/ipa-comdats.cc
! 2acfbe50dd7b74fc78cc6957afb870ba  gcc/ipa-cp.cc
! 0f1e7b6760c2459ae3d8d6b55d4020cc  gcc/ipa-cp.h
! 810da40373a77e8f3282ac7a81d25408  gcc/ipa-devirt.cc
  ae1e2041798741a74dbd720bfa8af4c5  gcc/ipa-fnsummary.cc
  179f7c3a6fbca4d8bf253b9fc8e5b21f  gcc/ipa-fnsummary.h
  c4202186d7ed3511a93359f9b276438b  gcc/ipa-free-lang-data.cc
--- 6677,6685 ----
  8a34b6abb2591b8c30c7fb4187261ee3  gcc/intl.cc
  22c5866f6858fea288e5e2f1adc96e40  gcc/intl.h
  920db3effdd509146b3f00be906c0885  gcc/ipa-comdats.cc
! 5404630cd27ac3f8e27db5f500fd775d  gcc/ipa-cp.cc
! 4d6f3ed19a0000835b68366644c08a7e  gcc/ipa-cp.h
! 0951d893930a76f52aa7e3f0fbd7201e  gcc/ipa-devirt.cc
  ae1e2041798741a74dbd720bfa8af4c5  gcc/ipa-fnsummary.cc
  179f7c3a6fbca4d8bf253b9fc8e5b21f  gcc/ipa-fnsummary.h
  c4202186d7ed3511a93359f9b276438b  gcc/ipa-free-lang-data.cc
*************** e27bcdc8d3a6733a4b94a025dad33e21  gcc/ip
*** 6698,6708 ****
  323eab7a20907e08e7d9ca8e513c2259  gcc/ipa-modref.h
  5de2d46c22758bff85e4365ba687f510  gcc/ipa-param-manipulation.cc
  dba11f7340415ca54713db0009a33093  gcc/ipa-param-manipulation.h
! 27a093cf8b1de75e3fdfb71018050ce0  gcc/ipa-polymorphic-call.cc
  80b4cc7719c703dfe60955dfb86002ae  gcc/ipa-predicate.cc
  a25a62951e49120c7882ca20d2486581  gcc/ipa-predicate.h
  7e00759eeb8f2ddaa2f77da1db8adf24  gcc/ipa-profile.cc
! a7b0cd8dabd2e9326e95aa6b70df4367  gcc/ipa-prop.cc
  ab51096414a0554c4c1069e327ad7801  gcc/ipa-prop.h
  14aace4627625a58b2f0a8aec7cd94f5  gcc/ipa-pure-const.cc
  f2d87c9921ca158119d238ee8d50abb6  gcc/ipa-ref.cc
--- 6699,6709 ----
  323eab7a20907e08e7d9ca8e513c2259  gcc/ipa-modref.h
  5de2d46c22758bff85e4365ba687f510  gcc/ipa-param-manipulation.cc
  dba11f7340415ca54713db0009a33093  gcc/ipa-param-manipulation.h
! cdf80ca29c90f97b4cca06b029f8353b  gcc/ipa-polymorphic-call.cc
  80b4cc7719c703dfe60955dfb86002ae  gcc/ipa-predicate.cc
  a25a62951e49120c7882ca20d2486581  gcc/ipa-predicate.h
  7e00759eeb8f2ddaa2f77da1db8adf24  gcc/ipa-profile.cc
! d75925ce72349be5dcaa17dbeff538ed  gcc/ipa-prop.cc
  ab51096414a0554c4c1069e327ad7801  gcc/ipa-prop.h
  14aace4627625a58b2f0a8aec7cd94f5  gcc/ipa-pure-const.cc
  f2d87c9921ca158119d238ee8d50abb6  gcc/ipa-ref.cc
*************** e0d99466f393722c3e10caf535614ff7  gcc/lt
*** 6904,6911 ****
  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
  3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
--- 6905,6912 ----
  351e06833ea0ad58238533d76ea0c2cf  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! 36156dfbc34e7ec3fa7fadd70881f00e  gcc/m2/ChangeLog
! 6c64ada2deff17585163556dd3634dc4  gcc/m2/Make-lang.in
  ed6143d60ab8fbfb423b65ba791d1faf  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
  3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
*************** e62a368ad1402d4621a0e52a68a7f6b1  gcc/m2
*** 6965,6971 ****
  d8b31d49a5389a5b3fd9cfb8c6d0e20a  gcc/m2/gm2-compiler/M2GCCDeclare.def
  1c36a89a70a1e1e7aa3f331d2c70582d  gcc/m2/gm2-compiler/M2GCCDeclare.mod
  55b623d045f983abc3b3127741836cb8  gcc/m2/gm2-compiler/M2GenGCC.def
! 835bb35e149036eca1c8a87ee5e9bfbc  gcc/m2/gm2-compiler/M2GenGCC.mod
  8e10b9228b005171cffbfaf29c0b39ca  gcc/m2/gm2-compiler/M2Graph.def
  3a603290f463cb67ee6075bf663e58f5  gcc/m2/gm2-compiler/M2Graph.mod
  6922dd2ebc05d1540cde23cd0a9cad00  gcc/m2/gm2-compiler/M2LangDump.def
--- 6966,6972 ----
  d8b31d49a5389a5b3fd9cfb8c6d0e20a  gcc/m2/gm2-compiler/M2GCCDeclare.def
  1c36a89a70a1e1e7aa3f331d2c70582d  gcc/m2/gm2-compiler/M2GCCDeclare.mod
  55b623d045f983abc3b3127741836cb8  gcc/m2/gm2-compiler/M2GenGCC.def
! a017c41f9b737804ee83f95b75d0912d  gcc/m2/gm2-compiler/M2GenGCC.mod
  8e10b9228b005171cffbfaf29c0b39ca  gcc/m2/gm2-compiler/M2Graph.def
  3a603290f463cb67ee6075bf663e58f5  gcc/m2/gm2-compiler/M2Graph.mod
  6922dd2ebc05d1540cde23cd0a9cad00  gcc/m2/gm2-compiler/M2LangDump.def
*************** fc714671f7db85c592cacb191e0620f1  gcc/m2
*** 6987,6993 ****
  20a15d962a1430f5ef49bc8290be692a  gcc/m2/gm2-compiler/M2Printf.def
  da39f48047099bd234ed89bf24985ff8  gcc/m2/gm2-compiler/M2Printf.mod
  3644d82df60af114b59d0a775f2fd22e  gcc/m2/gm2-compiler/M2Quads.def
! e969ca14d3d0fc8f35103aa58d166c84  gcc/m2/gm2-compiler/M2Quads.mod
  c29afd56b66be81b33c59bfcb6c07915  gcc/m2/gm2-compiler/M2Quiet.def
  fca7b0c0b7f66bf8cb79c72286c59870  gcc/m2/gm2-compiler/M2Quiet.mod
  91e73840daef7586a44408b4561f7e49  gcc/m2/gm2-compiler/M2Range.def
--- 6988,6994 ----
  20a15d962a1430f5ef49bc8290be692a  gcc/m2/gm2-compiler/M2Printf.def
  da39f48047099bd234ed89bf24985ff8  gcc/m2/gm2-compiler/M2Printf.mod
  3644d82df60af114b59d0a775f2fd22e  gcc/m2/gm2-compiler/M2Quads.def
! 7af0077bf3c28d93a0763bcda5432134  gcc/m2/gm2-compiler/M2Quads.mod
  c29afd56b66be81b33c59bfcb6c07915  gcc/m2/gm2-compiler/M2Quiet.def
  fca7b0c0b7f66bf8cb79c72286c59870  gcc/m2/gm2-compiler/M2Quiet.mod
  91e73840daef7586a44408b4561f7e49  gcc/m2/gm2-compiler/M2Range.def
*************** f3ed77bdba3291fae8e105605da16deb  gcc/m2
*** 7091,7097 ****
  eafb33a528ba3d9fc263721b8e50be2e  gcc/m2/gm2-gcc/m2configure.cc
  46cc0e2da559fcf25150ab6341b41c0d  gcc/m2/gm2-gcc/m2configure.def
  e4c50c0187268e44d3bd922d7cf14ce7  gcc/m2/gm2-gcc/m2configure.h
! 90afe280c8dd78bc0a730cea83ebbf15  gcc/m2/gm2-gcc/m2convert.cc
  992f6fb82505b86716b37259179e3c8a  gcc/m2/gm2-gcc/m2convert.def
  e166890edc23611e9b94cf338d9793c3  gcc/m2/gm2-gcc/m2convert.h
  7f5868f730e6e105f6a0ef03545962c9  gcc/m2/gm2-gcc/m2decl.cc
--- 7092,7098 ----
  eafb33a528ba3d9fc263721b8e50be2e  gcc/m2/gm2-gcc/m2configure.cc
  46cc0e2da559fcf25150ab6341b41c0d  gcc/m2/gm2-gcc/m2configure.def
  e4c50c0187268e44d3bd922d7cf14ce7  gcc/m2/gm2-gcc/m2configure.h
! 95cb4618c3f6e3d416020afcd549b494  gcc/m2/gm2-gcc/m2convert.cc
  992f6fb82505b86716b37259179e3c8a  gcc/m2/gm2-gcc/m2convert.def
  e166890edc23611e9b94cf338d9793c3  gcc/m2/gm2-gcc/m2convert.h
  7f5868f730e6e105f6a0ef03545962c9  gcc/m2/gm2-gcc/m2decl.cc
*************** b01c1c9868652f064fac671cf017d5e3  gcc/m2
*** 7111,7127 ****
  2d4b20e29df3cebff129b37fe5fb4c17  gcc/m2/gm2-gcc/m2misc.def
  ff41024c4b58263a672562d18577f96a  gcc/m2/gm2-gcc/m2misc.h
  c9bbb3e64e25871d9ea353e39b6cc7d6  gcc/m2/gm2-gcc/m2options.h
! 4e1d4a9bafa60501dca6ba9a24a80c46  gcc/m2/gm2-gcc/m2pp.cc
  48914d4dd7e70d211ede1e624155c252  gcc/m2/gm2-gcc/m2pp.def
! 448c0bb25594fbbee399ddacc03d1e20  gcc/m2/gm2-gcc/m2pp.h
  faaa11b16d263aada579dcab3e2aebfa  gcc/m2/gm2-gcc/m2range.h
  4f7c5dbacfd5058574c352aa902c0b3d  gcc/m2/gm2-gcc/m2search.h
  5ae8470850b9574477f68df5dc06987b  gcc/m2/gm2-gcc/m2spellcheck.cc
  001668dcb232167a252a81dbfe56fdd8  gcc/m2/gm2-gcc/m2spellcheck.def
  9dcad969be2378c4f02f2d40280c1321  gcc/m2/gm2-gcc/m2spellcheck.h
! 25461ba661d4937ca5cd19f4bf1cd599  gcc/m2/gm2-gcc/m2statement.cc
! c5cb19a9c832dc75842fb9e0ca784a22  gcc/m2/gm2-gcc/m2statement.def
! df4a04b5e1e609d7dad910efbd78d03e  gcc/m2/gm2-gcc/m2statement.h
  2e983ca5758cdbfe3d6e9ab1cc41ef9e  gcc/m2/gm2-gcc/m2top.cc
  1831801cc66a5036650018fdd153b9df  gcc/m2/gm2-gcc/m2top.def
  f15fcec96ef4d25680fce8a49a8b7d89  gcc/m2/gm2-gcc/m2top.h
--- 7112,7128 ----
  2d4b20e29df3cebff129b37fe5fb4c17  gcc/m2/gm2-gcc/m2misc.def
  ff41024c4b58263a672562d18577f96a  gcc/m2/gm2-gcc/m2misc.h
  c9bbb3e64e25871d9ea353e39b6cc7d6  gcc/m2/gm2-gcc/m2options.h
! 884879f9bd20559ecb001eca3b6b7cd0  gcc/m2/gm2-gcc/m2pp.cc
  48914d4dd7e70d211ede1e624155c252  gcc/m2/gm2-gcc/m2pp.def
! 1346997e69018e1ce65f447a7308c338  gcc/m2/gm2-gcc/m2pp.h
  faaa11b16d263aada579dcab3e2aebfa  gcc/m2/gm2-gcc/m2range.h
  4f7c5dbacfd5058574c352aa902c0b3d  gcc/m2/gm2-gcc/m2search.h
  5ae8470850b9574477f68df5dc06987b  gcc/m2/gm2-gcc/m2spellcheck.cc
  001668dcb232167a252a81dbfe56fdd8  gcc/m2/gm2-gcc/m2spellcheck.def
  9dcad969be2378c4f02f2d40280c1321  gcc/m2/gm2-gcc/m2spellcheck.h
! caeb463a6c822199ebf3ffcb27f40fbd  gcc/m2/gm2-gcc/m2statement.cc
! cead87c5a76bfd7f6c765324f7c9d0e6  gcc/m2/gm2-gcc/m2statement.def
! 940e6cb9d6cb8b0fc2913c8246bf5bb2  gcc/m2/gm2-gcc/m2statement.h
  2e983ca5758cdbfe3d6e9ab1cc41ef9e  gcc/m2/gm2-gcc/m2top.cc
  1831801cc66a5036650018fdd153b9df  gcc/m2/gm2-gcc/m2top.def
  f15fcec96ef4d25680fce8a49a8b7d89  gcc/m2/gm2-gcc/m2top.h
*************** e7a09e0c721b368b4a964e7881111ce8  gcc/m2
*** 7131,7139 ****
  01a83c7813513b82767bfba817928328  gcc/m2/gm2-gcc/m2treelib.cc
  3d6d2e6a8914d9ce3037c9afa87453dc  gcc/m2/gm2-gcc/m2treelib.def
  8845aab965d1a15a4f1e8b1404622cdc  gcc/m2/gm2-gcc/m2treelib.h
! fa7b210f2708d802994f3a1d79a21162  gcc/m2/gm2-gcc/m2type.cc
! 4878ff605057eda7cdda5ec431273efc  gcc/m2/gm2-gcc/m2type.def
! d385d3d38599ab2e7259f48659bcd70f  gcc/m2/gm2-gcc/m2type.h
  7d7330512c93e8944bb8a5e8b940b2ab  gcc/m2/gm2-gcc/rtegraph.cc
  8c1a56d34e3888eb65a17a11eb7f9076  gcc/m2/gm2-gcc/rtegraph.h
  dda0d623d5f5455ea1ac9d407784b464  gcc/m2/gm2-ici/M2Emit.mod
--- 7132,7140 ----
  01a83c7813513b82767bfba817928328  gcc/m2/gm2-gcc/m2treelib.cc
  3d6d2e6a8914d9ce3037c9afa87453dc  gcc/m2/gm2-gcc/m2treelib.def
  8845aab965d1a15a4f1e8b1404622cdc  gcc/m2/gm2-gcc/m2treelib.h
! 3374303213e3c50d27e5465c5280bc73  gcc/m2/gm2-gcc/m2type.cc
! 7e806f5eb2670abef5280e205abd8f00  gcc/m2/gm2-gcc/m2type.def
! 9e3eb95f2919f215da985cde47568595  gcc/m2/gm2-gcc/m2type.h
  7d7330512c93e8944bb8a5e8b940b2ab  gcc/m2/gm2-gcc/rtegraph.cc
  8c1a56d34e3888eb65a17a11eb7f9076  gcc/m2/gm2-gcc/rtegraph.h
  dda0d623d5f5455ea1ac9d407784b464  gcc/m2/gm2-ici/M2Emit.mod
*************** ff662645190de703b9423727e52d659c  gcc/rt
*** 8112,8138 ****
  92e356710b1aae5aaabc8f47d6977fff  gcc/run-rtl-passes.cc
  f4eae48a3e90b34e88b5789e54f5f29a  gcc/run-rtl-passes.h
  add9bd82fcec23469a4d0f7df03d9589  gcc/rust/CONTRIBUTING.md
! cb16c1cc36e87154ab7a3fb47aebc741  gcc/rust/ChangeLog
! 4cb08c0598632f64092f95178e44027d  gcc/rust/Make-lang.in
  f3527e161e6e2827d299c1a928ebe1c6  gcc/rust/README.md
! 07b6198fd46568909422706f2d588e20  gcc/rust/ast/rust-ast-builder.cc
! a0bd3c2d503e6f36b2bab03e5ffcf93a  gcc/rust/ast/rust-ast-builder.h
! 84d0c1dea6f1f965ad02f8ea1221c3c6  gcc/rust/ast/rust-ast-collector.cc
! 657d9819095883ec8defc478f5d41240  gcc/rust/ast/rust-ast-collector.h
  98b8c7bc7c7460959df0b63f43d595ee  gcc/rust/ast/rust-ast-dump.cc
  a3c39938de79362236289dd94cc979bb  gcc/rust/ast/rust-ast-dump.h
  13f7ee0d5b0ae541ac6c8c27a9544024  gcc/rust/ast/rust-ast-formatting.cc
  d27f26e206e8e58bbf206df6c491ad3d  gcc/rust/ast/rust-ast-formatting.h
  1d2023c1d1dbe72ba8448b166577801b  gcc/rust/ast/rust-ast-fragment.cc
  00ca322cecd6a261aaeea375344973b1  gcc/rust/ast/rust-ast-fragment.h
! 32dab6726a6ca48d3e2ce3c2cf860337  gcc/rust/ast/rust-ast-full-decls.h
  ce8b5c065e370de22a7a9314f5030d5a  gcc/rust/ast/rust-ast-full.h
! 5f69b288fc819b3b819fa23aef3edbcb  gcc/rust/ast/rust-ast-pointer-visitor.cc
! 9151fa14ced36f111fd8504361d1909f  gcc/rust/ast/rust-ast-pointer-visitor.h
! 95a16e3a2ee5b517e890399efb6e9a72  gcc/rust/ast/rust-ast-visitor.cc
! a3f7fbd2c74829840baaac377177c304  gcc/rust/ast/rust-ast-visitor.h
! 84f70742625e3bf65e78f6d82b4ac81b  gcc/rust/ast/rust-ast.cc
! a9c5e303f0b0a456c0a70fb6e523c530  gcc/rust/ast/rust-ast.h
  15a29678516152e3a7190d2b2a01a7e5  gcc/rust/ast/rust-builtin-ast-nodes.h
  a80235d705e48446e91e5fc731dbcfff  gcc/rust/ast/rust-collect-lang-items.cc
  577a3197010f4f13c724c6aee258c07f  gcc/rust/ast/rust-collect-lang-items.h
--- 8113,8139 ----
  92e356710b1aae5aaabc8f47d6977fff  gcc/run-rtl-passes.cc
  f4eae48a3e90b34e88b5789e54f5f29a  gcc/run-rtl-passes.h
  add9bd82fcec23469a4d0f7df03d9589  gcc/rust/CONTRIBUTING.md
! 4b6437e930c97c1ae8a3e59583d7c9a6  gcc/rust/ChangeLog
! c37ff78061953b076ac2eb5551b37be1  gcc/rust/Make-lang.in
  f3527e161e6e2827d299c1a928ebe1c6  gcc/rust/README.md
! fbd9e5dbbbf2e1a3e28d730525b8eb78  gcc/rust/ast/rust-ast-builder.cc
! c08e21c65a155ba30f72631681911034  gcc/rust/ast/rust-ast-builder.h
! bceb109492170e91c8c295d88c9e5961  gcc/rust/ast/rust-ast-collector.cc
! a777fb86e5d41d829721554ee8a81ca7  gcc/rust/ast/rust-ast-collector.h
  98b8c7bc7c7460959df0b63f43d595ee  gcc/rust/ast/rust-ast-dump.cc
  a3c39938de79362236289dd94cc979bb  gcc/rust/ast/rust-ast-dump.h
  13f7ee0d5b0ae541ac6c8c27a9544024  gcc/rust/ast/rust-ast-formatting.cc
  d27f26e206e8e58bbf206df6c491ad3d  gcc/rust/ast/rust-ast-formatting.h
  1d2023c1d1dbe72ba8448b166577801b  gcc/rust/ast/rust-ast-fragment.cc
  00ca322cecd6a261aaeea375344973b1  gcc/rust/ast/rust-ast-fragment.h
! 675d4ad42d08e4f5907e7143057b09a7  gcc/rust/ast/rust-ast-full-decls.h
  ce8b5c065e370de22a7a9314f5030d5a  gcc/rust/ast/rust-ast-full.h
! 302c47af8311cc68f23f7c941c37826d  gcc/rust/ast/rust-ast-pointer-visitor.cc
! 3de874b956fb474770d98a83e420396b  gcc/rust/ast/rust-ast-pointer-visitor.h
! 003c050ae97bad63ac141ffd1ac16840  gcc/rust/ast/rust-ast-visitor.cc
! ff1c55d74fc098d6e8a6a5ac297498e8  gcc/rust/ast/rust-ast-visitor.h
! a211319b221cec4d5a279caca4fd40ea  gcc/rust/ast/rust-ast.cc
! ca66d862961538c388fe021adcf03774  gcc/rust/ast/rust-ast.h
  15a29678516152e3a7190d2b2a01a7e5  gcc/rust/ast/rust-builtin-ast-nodes.h
  a80235d705e48446e91e5fc731dbcfff  gcc/rust/ast/rust-collect-lang-items.cc
  577a3197010f4f13c724c6aee258c07f  gcc/rust/ast/rust-collect-lang-items.h
*************** e6c47c7d5c58b601dbebb5a0bd1b263a  gcc/ru
*** 8147,8158 ****
  dcbe24ad7f60ad58e14a2b40bb7b7580  gcc/rust/ast/rust-desugar-try-block.h
  3e3e3c4baf7a69aefb9fd989d8b7b491  gcc/rust/ast/rust-desugar-while-let.cc
  0a24ad8baedd9b3f104f4ba1efceab02  gcc/rust/ast/rust-desugar-while-let.h
! 7bff6fc0bda37a91d72be283425de026  gcc/rust/ast/rust-expr.h
  0746b32151c484e3ff44eef8e94d2f1a  gcc/rust/ast/rust-expression-yeast.cc
  626bbb6526780507e2d8c0727b9ddef9  gcc/rust/ast/rust-expression-yeast.h
  e10c652a02b59d0bbfc3ed60e3ba6a67  gcc/rust/ast/rust-fmt.cc
! 839a61e117537a2fad6ca5d2ee60329d  gcc/rust/ast/rust-fmt.h
! 4145763ab5ba16ebf694d06248d0fea6  gcc/rust/ast/rust-item.h
  1b4a6ec192a470e32bdad6fb49f514b6  gcc/rust/ast/rust-macro.h
  8dd1e4ff4335af00648884bddbb8459e  gcc/rust/ast/rust-path.cc
  d66fe903279a3ccbfb7b78a4f53dbeea  gcc/rust/ast/rust-path.h
--- 8148,8159 ----
  dcbe24ad7f60ad58e14a2b40bb7b7580  gcc/rust/ast/rust-desugar-try-block.h
  3e3e3c4baf7a69aefb9fd989d8b7b491  gcc/rust/ast/rust-desugar-while-let.cc
  0a24ad8baedd9b3f104f4ba1efceab02  gcc/rust/ast/rust-desugar-while-let.h
! 548ed3dbb162bd62a7eddaa8e44d9235  gcc/rust/ast/rust-expr.h
  0746b32151c484e3ff44eef8e94d2f1a  gcc/rust/ast/rust-expression-yeast.cc
  626bbb6526780507e2d8c0727b9ddef9  gcc/rust/ast/rust-expression-yeast.h
  e10c652a02b59d0bbfc3ed60e3ba6a67  gcc/rust/ast/rust-fmt.cc
! 069a7108cb1404f7fd55ff1cb6ac3b9e  gcc/rust/ast/rust-fmt.h
! 26639a30268b35287b7c8a5643f53442  gcc/rust/ast/rust-item.h
  1b4a6ec192a470e32bdad6fb49f514b6  gcc/rust/ast/rust-macro.h
  8dd1e4ff4335af00648884bddbb8459e  gcc/rust/ast/rust-path.cc
  d66fe903279a3ccbfb7b78a4f53dbeea  gcc/rust/ast/rust-path.h
*************** e84ec0880b45e2e86d61f0d36c314317  gcc/ru
*** 8162,8168 ****
  31891c319a6cd4db94f7cde8416e3c91  gcc/rust/ast/rust-type.h
  39774c8ec83393047e843c9b8dff6822  gcc/rust/backend/rust-builtins.cc
  4d12359a7a47b6d290998ff743d3b250  gcc/rust/backend/rust-builtins.h
! ee034fe0eb6f007923edb3ee6eef4db1  gcc/rust/backend/rust-compile-asm.cc
  f2a74dec153c7d458110255bddcd7c47  gcc/rust/backend/rust-compile-asm.h
  111bf2f91c54323826776a521d970b70  gcc/rust/backend/rust-compile-base.cc
  bb0150a6ba6d60262a1b33393f8d5341  gcc/rust/backend/rust-compile-base.h
--- 8163,8169 ----
  31891c319a6cd4db94f7cde8416e3c91  gcc/rust/ast/rust-type.h
  39774c8ec83393047e843c9b8dff6822  gcc/rust/backend/rust-builtins.cc
  4d12359a7a47b6d290998ff743d3b250  gcc/rust/backend/rust-builtins.h
! 841c4de1fb9c8ae4e98cfaf77ce23ebc  gcc/rust/backend/rust-compile-asm.cc
  f2a74dec153c7d458110255bddcd7c47  gcc/rust/backend/rust-compile-asm.h
  111bf2f91c54323826776a521d970b70  gcc/rust/backend/rust-compile-base.cc
  bb0150a6ba6d60262a1b33393f8d5341  gcc/rust/backend/rust-compile-base.h
*************** fd2bc9cab100ad48a45eff369cdaa1af  gcc/ru
*** 8170,8185 ****
  f6ccf3e6550e5f3d1e7f0903fad16e00  gcc/rust/backend/rust-compile-block.h
  84d2efe344d04876bdef59c09e170495  gcc/rust/backend/rust-compile-context.cc
  6bc78d73b506cf623b5f0e27fdc8326e  gcc/rust/backend/rust-compile-context.h
! cf5cbb6a5b5050a69fc274ef81180fa3  gcc/rust/backend/rust-compile-expr.cc
  02d50055305164dd0cc5fff5dd879d8d  gcc/rust/backend/rust-compile-expr.h
  d2787752d55665c5f6a670bcb3949817  gcc/rust/backend/rust-compile-extern.h
  154038c60400f9e4a8ead9dcc5ea2388  gcc/rust/backend/rust-compile-fnparam.cc
  8c98ceabcde4b8a1cc6e31c5186c9656  gcc/rust/backend/rust-compile-fnparam.h
! e8f37f90f4aabb105acbd800783403ba  gcc/rust/backend/rust-compile-implitem.cc
  be9ce3db6b795d9db2585b15e17f476d  gcc/rust/backend/rust-compile-implitem.h
! 75f18048b8294b7088057f510613b052  gcc/rust/backend/rust-compile-intrinsic.cc
  a1fb8689400958af8126ae9c477c873e  gcc/rust/backend/rust-compile-intrinsic.h
! 169ee3d882699b8f9affd6e7bd5296e2  gcc/rust/backend/rust-compile-item.cc
  4faa4d3dc0f5fd3cfd2981a8f06308e4  gcc/rust/backend/rust-compile-item.h
  375a8b5f34115d69573237509dc5bac8  gcc/rust/backend/rust-compile-pattern.cc
  bedf30a4724e428664f2f471edda5d23  gcc/rust/backend/rust-compile-pattern.h
--- 8171,8186 ----
  f6ccf3e6550e5f3d1e7f0903fad16e00  gcc/rust/backend/rust-compile-block.h
  84d2efe344d04876bdef59c09e170495  gcc/rust/backend/rust-compile-context.cc
  6bc78d73b506cf623b5f0e27fdc8326e  gcc/rust/backend/rust-compile-context.h
! f78bbbef53eba04c0dc10812db205de0  gcc/rust/backend/rust-compile-expr.cc
  02d50055305164dd0cc5fff5dd879d8d  gcc/rust/backend/rust-compile-expr.h
  d2787752d55665c5f6a670bcb3949817  gcc/rust/backend/rust-compile-extern.h
  154038c60400f9e4a8ead9dcc5ea2388  gcc/rust/backend/rust-compile-fnparam.cc
  8c98ceabcde4b8a1cc6e31c5186c9656  gcc/rust/backend/rust-compile-fnparam.h
! f2f769661a2bb93e87b5954861eecacf  gcc/rust/backend/rust-compile-implitem.cc
  be9ce3db6b795d9db2585b15e17f476d  gcc/rust/backend/rust-compile-implitem.h
! 59ae6f1ab24ae2166c53f3547a682f93  gcc/rust/backend/rust-compile-intrinsic.cc
  a1fb8689400958af8126ae9c477c873e  gcc/rust/backend/rust-compile-intrinsic.h
! 2312bf92f44bf06f70f4403730f5aef0  gcc/rust/backend/rust-compile-item.cc
  4faa4d3dc0f5fd3cfd2981a8f06308e4  gcc/rust/backend/rust-compile-item.h
  375a8b5f34115d69573237509dc5bac8  gcc/rust/backend/rust-compile-pattern.cc
  bedf30a4724e428664f2f471edda5d23  gcc/rust/backend/rust-compile-pattern.h
*************** ce6124f6342485eba9fc0c1525c93d1a  gcc/ru
*** 8197,8204 ****
  a9a83e514f16f22fdc6e72fcb2e37a14  gcc/rust/backend/rust-compile.h
  53b4d6a019435dade0320636db64f287  gcc/rust/backend/rust-constexpr.cc
  8b7d1489d3387b799f0272f52df62581  gcc/rust/backend/rust-constexpr.h
! 4df37e80898a83dcd00e6b69109fe2ef  gcc/rust/backend/rust-intrinsic-handlers.cc
! 31dd83f89567432eb4c3b515cb0f8748  gcc/rust/backend/rust-intrinsic-handlers.h
  fe6f5539b06a5b2b5c8179da42f9cd0d  gcc/rust/backend/rust-mangle-legacy.cc
  3ff8e3c97c56af610fb789104c385560  gcc/rust/backend/rust-mangle-v0.cc
  3f96bdbc9eba300857511ae861409693  gcc/rust/backend/rust-mangle.cc
--- 8198,8205 ----
  a9a83e514f16f22fdc6e72fcb2e37a14  gcc/rust/backend/rust-compile.h
  53b4d6a019435dade0320636db64f287  gcc/rust/backend/rust-constexpr.cc
  8b7d1489d3387b799f0272f52df62581  gcc/rust/backend/rust-constexpr.h
! 44cf2d34db2d4a252d6db0acd62d9b85  gcc/rust/backend/rust-intrinsic-handlers.cc
! 91a625c9449712b5311b773867f2c91f  gcc/rust/backend/rust-intrinsic-handlers.h
  fe6f5539b06a5b2b5c8179da42f9cd0d  gcc/rust/backend/rust-mangle-legacy.cc
  3ff8e3c97c56af610fb789104c385560  gcc/rust/backend/rust-mangle-v0.cc
  3f96bdbc9eba300857511ae861409693  gcc/rust/backend/rust-mangle.cc
*************** ffd785acdfbb1eba43f3b1cb6828c17c  gcc/ru
*** 8296,8303 ****
  bbab9ad0ba3bffd8f8502d2bafaf47cf  gcc/rust/checks/errors/feature/rust-feature-collector.h
  f3e7f9998a5fcd5ef243ba6881006a5c  gcc/rust/checks/errors/feature/rust-feature-defs-rfl.h
  563d237ceb9c4fea2076fb3150468741  gcc/rust/checks/errors/feature/rust-feature-defs.h
! 11a740e0963abbe4ea0482008daad918  gcc/rust/checks/errors/feature/rust-feature-gate.cc
! 7cd107c3fb315cf2a721548849be0345  gcc/rust/checks/errors/feature/rust-feature-gate.h
  e227787587d4567c45f9966f8b82db7b  gcc/rust/checks/errors/feature/rust-feature-store.cc
  2947cb614792b8cb8d655e3661870770  gcc/rust/checks/errors/feature/rust-feature-store.h
  7d710333b381f61c295f5173f198fb92  gcc/rust/checks/errors/feature/rust-feature.cc
--- 8297,8304 ----
  bbab9ad0ba3bffd8f8502d2bafaf47cf  gcc/rust/checks/errors/feature/rust-feature-collector.h
  f3e7f9998a5fcd5ef243ba6881006a5c  gcc/rust/checks/errors/feature/rust-feature-defs-rfl.h
  563d237ceb9c4fea2076fb3150468741  gcc/rust/checks/errors/feature/rust-feature-defs.h
! c7a2444814a71319ab50e37ac0395ec8  gcc/rust/checks/errors/feature/rust-feature-gate.cc
! eee27a8aecb127e10844eddccadf13d9  gcc/rust/checks/errors/feature/rust-feature-gate.h
  e227787587d4567c45f9966f8b82db7b  gcc/rust/checks/errors/feature/rust-feature-store.cc
  2947cb614792b8cb8d655e3661870770  gcc/rust/checks/errors/feature/rust-feature-store.h
  7d710333b381f61c295f5173f198fb92  gcc/rust/checks/errors/feature/rust-feature.cc
*************** ae661cfd7b4e13f7428e1fc2568db32c  gcc/ru
*** 8315,8333 ****
  7b312566736776dc642e0ac6069ee674  gcc/rust/checks/errors/privacy/rust-reachability.h
  b7c4e379cff5779afde61a662b051bb7  gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
  f7b06cf79a55c9659bdf40d25e0bf4b1  gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
! 2b51c8cd71f16d85615a6f77cc8d9531  gcc/rust/checks/errors/rust-ast-validation.cc
  8a47aa2db46c3e82da2be3ad19266b53  gcc/rust/checks/errors/rust-ast-validation.h
! 416d1fccc2865b23f92847324938d76f  gcc/rust/checks/errors/rust-const-checker.cc
! d3f6a661ad0409e35772697ad7e9e506  gcc/rust/checks/errors/rust-const-checker.h
! be414792c53b0c40c68656f99ed4501e  gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
  f8bbf6383cf2f4051c4c724c78c03f28  gcc/rust/checks/errors/rust-hir-pattern-analysis.h
  ce0954d8a72edb61be6d8e646c61c6cf  gcc/rust/checks/errors/rust-readonly-check.cc
  7853e036ce1dfe09f579bf6a04994461  gcc/rust/checks/errors/rust-readonly-check.h
! 853290892ed02b7ba40847de0e701822  gcc/rust/checks/errors/rust-unsafe-checker.cc
! 5e5e840d1139c1be0f126a2d32d8aaf8  gcc/rust/checks/errors/rust-unsafe-checker.h
  45e1e285d36467b08cc19201db4f6644  gcc/rust/checks/lints/rust-lint-marklive-base.h
! 83d993cb383b76a9131ec58996b0abb0  gcc/rust/checks/lints/rust-lint-marklive.cc
! ddda12b4ef89f90ebd869a2cd0dc7665  gcc/rust/checks/lints/rust-lint-marklive.h
  39d2087b62541ef24b107e4edf79b300  gcc/rust/checks/lints/rust-lint-scan-deadcode.h
  d03052efded34394a85b3e891c267781  gcc/rust/checks/lints/rust-lint-unused-var.cc
  56160d4d1424a0469b62ce3dc9ef7886  gcc/rust/checks/lints/rust-lint-unused-var.h
--- 8316,8338 ----
  7b312566736776dc642e0ac6069ee674  gcc/rust/checks/errors/privacy/rust-reachability.h
  b7c4e379cff5779afde61a662b051bb7  gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
  f7b06cf79a55c9659bdf40d25e0bf4b1  gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
! 2242ee9c3a9e335cce55e7458bef54aa  gcc/rust/checks/errors/rust-ast-validation.cc
  8a47aa2db46c3e82da2be3ad19266b53  gcc/rust/checks/errors/rust-ast-validation.h
! 12cac8ce1e5761394a626d7d68b61c90  gcc/rust/checks/errors/rust-attribute-checker.cc
! 83f6652638adfd9f110381c863d0fb64  gcc/rust/checks/errors/rust-attribute-checker.h
! 4d358762e8aed33ded474961da022148  gcc/rust/checks/errors/rust-builtin-attribute-checker.cc
! e6c34d2279cd39fe13d7dc443e01bda3  gcc/rust/checks/errors/rust-builtin-attribute-checker.h
! 97eb5164438e6a5d6b7d7eaa08bc5e45  gcc/rust/checks/errors/rust-const-checker.cc
! 5b19c80d8eef717fef37e22c0f60caf2  gcc/rust/checks/errors/rust-const-checker.h
! f887dee766eacb3557fe74453215ae8e  gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
  f8bbf6383cf2f4051c4c724c78c03f28  gcc/rust/checks/errors/rust-hir-pattern-analysis.h
  ce0954d8a72edb61be6d8e646c61c6cf  gcc/rust/checks/errors/rust-readonly-check.cc
  7853e036ce1dfe09f579bf6a04994461  gcc/rust/checks/errors/rust-readonly-check.h
! b50c6015cedf461d30c5f73ad35d4413  gcc/rust/checks/errors/rust-unsafe-checker.cc
! 543a16c88c57a44588e4d5093ed78f6f  gcc/rust/checks/errors/rust-unsafe-checker.h
  45e1e285d36467b08cc19201db4f6644  gcc/rust/checks/lints/rust-lint-marklive-base.h
! 377ecc03102aabc4ebf650f8a562811c  gcc/rust/checks/lints/rust-lint-marklive.cc
! 09a6bbd6500d30d3646663f300340b97  gcc/rust/checks/lints/rust-lint-marklive.h
  39d2087b62541ef24b107e4edf79b300  gcc/rust/checks/lints/rust-lint-scan-deadcode.h
  d03052efded34394a85b3e891c267781  gcc/rust/checks/lints/rust-lint-unused-var.cc
  56160d4d1424a0469b62ce3dc9ef7886  gcc/rust/checks/lints/rust-lint-unused-var.h
*************** db60887b189ef8dd1131d50e5a95ea80  gcc/ru
*** 8359,8371 ****
  b9d81791a655aa0e8365eb6f1f40e6dd  gcc/rust/expand/rust-derive-partial-eq.cc
  f8d9ae32b9fb0c892b90ca30e3f100b6  gcc/rust/expand/rust-derive-partial-eq.h
  338153a09e9c1f7d81ba87f49c77ebe2  gcc/rust/expand/rust-derive.cc
! 8b320c6af6f2aa082bb9c9b1bb3915fd  gcc/rust/expand/rust-derive.h
  5d0d51ca0585103d826f01c4a63b8d56  gcc/rust/expand/rust-early-cfg-strip.cc
  ee3e9df287e242b2780da2661e9d3358  gcc/rust/expand/rust-early-cfg-strip.h
  caff0b7b7e1a0fb05ef4f8575614fb41  gcc/rust/expand/rust-expand-format-args.cc
  32cdbc32d6a40f91930b408f13f78df8  gcc/rust/expand/rust-expand-format-args.h
! e589668d31f505ae29a9d4c2c3ab9bb8  gcc/rust/expand/rust-expand-visitor.cc
! 15655a4adde47da5ba2b3c1e1089c251  gcc/rust/expand/rust-expand-visitor.h
  3628942d6eb2dc1c553b94271a4d592e  gcc/rust/expand/rust-macro-builtins-asm.cc
  48269c7df7dead67e4185d80b217a76a  gcc/rust/expand/rust-macro-builtins-asm.h
  f27b7d7665a02b4f5288be721ee7cd3e  gcc/rust/expand/rust-macro-builtins-format-args.cc
--- 8364,8376 ----
  b9d81791a655aa0e8365eb6f1f40e6dd  gcc/rust/expand/rust-derive-partial-eq.cc
  f8d9ae32b9fb0c892b90ca30e3f100b6  gcc/rust/expand/rust-derive-partial-eq.h
  338153a09e9c1f7d81ba87f49c77ebe2  gcc/rust/expand/rust-derive.cc
! e4121a7bd18849c5d0c504d98b639b2c  gcc/rust/expand/rust-derive.h
  5d0d51ca0585103d826f01c4a63b8d56  gcc/rust/expand/rust-early-cfg-strip.cc
  ee3e9df287e242b2780da2661e9d3358  gcc/rust/expand/rust-early-cfg-strip.h
  caff0b7b7e1a0fb05ef4f8575614fb41  gcc/rust/expand/rust-expand-format-args.cc
  32cdbc32d6a40f91930b408f13f78df8  gcc/rust/expand/rust-expand-format-args.h
! 7ec5a386e9d466bb3e35081fb3c49196  gcc/rust/expand/rust-expand-visitor.cc
! 0e79d157c10d46a62655c621a6b55626  gcc/rust/expand/rust-expand-visitor.h
  3628942d6eb2dc1c553b94271a4d592e  gcc/rust/expand/rust-macro-builtins-asm.cc
  48269c7df7dead67e4185d80b217a76a  gcc/rust/expand/rust-macro-builtins-asm.h
  f27b7d7665a02b4f5288be721ee7cd3e  gcc/rust/expand/rust-macro-builtins-format-args.cc
*************** e78b00ce2aed15088c09bf10baaf4265  gcc/ru
*** 8380,8386 ****
  907f65abd4676d9291ef7277bcf5425a  gcc/rust/expand/rust-macro-builtins-utility.cc
  7c2ef170018db6c9883bce9f1dfa3277  gcc/rust/expand/rust-macro-builtins.cc
  6d3373d4b93bdf7e0fd90d0eec8de32e  gcc/rust/expand/rust-macro-builtins.h
! f8bc6e229cc6ea8a3d6c22a17db04e78  gcc/rust/expand/rust-macro-expand.cc
  35cdae960da84ca7c1a9fe07fe04f854  gcc/rust/expand/rust-macro-expand.h
  6d4d133a734277207ddac6f68b43278f  gcc/rust/expand/rust-macro-invoc-lexer.cc
  c521d329f546dc2c3bda3e9182abc6fe  gcc/rust/expand/rust-macro-invoc-lexer.h
--- 8385,8391 ----
  907f65abd4676d9291ef7277bcf5425a  gcc/rust/expand/rust-macro-builtins-utility.cc
  7c2ef170018db6c9883bce9f1dfa3277  gcc/rust/expand/rust-macro-builtins.cc
  6d3373d4b93bdf7e0fd90d0eec8de32e  gcc/rust/expand/rust-macro-builtins.h
! c13540dd0e96136221c06fdfad5fa580  gcc/rust/expand/rust-macro-expand.cc
  35cdae960da84ca7c1a9fe07fe04f854  gcc/rust/expand/rust-macro-expand.h
  6d4d133a734277207ddac6f68b43278f  gcc/rust/expand/rust-macro-invoc-lexer.cc
  c521d329f546dc2c3bda3e9182abc6fe  gcc/rust/expand/rust-macro-invoc-lexer.h
*************** c043b006c21e87f8b82ba1334addb1af  gcc/ru
*** 8390,8397 ****
  9568c3923de491cd646cd621c423458a  gcc/rust/expand/rust-proc-macro.h
  fc268c6c7778ed7ae6989f7f0d879bdc  gcc/rust/expand/rust-token-tree-desugar.cc
  7320c7b564a470f189050f3109db3d38  gcc/rust/expand/rust-token-tree-desugar.h
! d9df53a89460b6ddf6e22c739cdf3c2a  gcc/rust/hir/rust-ast-lower-base.cc
! b39fa054cc1779fe6107cd9926e1a92a  gcc/rust/hir/rust-ast-lower-base.h
  388369f5656aba1972999bdfa496f3b0  gcc/rust/hir/rust-ast-lower-block.h
  054c79e824e2ba6f9c8c4337571f8654  gcc/rust/hir/rust-ast-lower-enumitem.h
  288088a4374abaea8149e6c3d116b2e4  gcc/rust/hir/rust-ast-lower-expr.cc
--- 8395,8402 ----
  9568c3923de491cd646cd621c423458a  gcc/rust/expand/rust-proc-macro.h
  fc268c6c7778ed7ae6989f7f0d879bdc  gcc/rust/expand/rust-token-tree-desugar.cc
  7320c7b564a470f189050f3109db3d38  gcc/rust/expand/rust-token-tree-desugar.h
! 9686a496a6b9df4da71cd91a9a596a96  gcc/rust/hir/rust-ast-lower-base.cc
! d2f3d1afd55e7cc89809f8d005d159cc  gcc/rust/hir/rust-ast-lower-base.h
  388369f5656aba1972999bdfa496f3b0  gcc/rust/hir/rust-ast-lower-block.h
  054c79e824e2ba6f9c8c4337571f8654  gcc/rust/hir/rust-ast-lower-enumitem.h
  288088a4374abaea8149e6c3d116b2e4  gcc/rust/hir/rust-ast-lower-expr.cc
*************** af24f6b3af1cef0fedb4b6e50d0859db  gcc/ru
*** 8401,8407 ****
  be0e883542232a22c58368620773a567  gcc/rust/hir/rust-ast-lower-format-args.h
  ce342337b00bc7e1af31ad2289113edb  gcc/rust/hir/rust-ast-lower-implitem.cc
  f96a93065b8ef877d4ef5a9601c45679  gcc/rust/hir/rust-ast-lower-implitem.h
! 97ee37e2e094d1312d7028224b58c9c7  gcc/rust/hir/rust-ast-lower-item.cc
  375f95d0560ba9e63cb15fd55a381950  gcc/rust/hir/rust-ast-lower-item.h
  3beb02226e0d6306f86a5e930524f669  gcc/rust/hir/rust-ast-lower-pattern.cc
  e5d2a1d427ba7ab163a80fda1d1455a3  gcc/rust/hir/rust-ast-lower-pattern.h
--- 8406,8412 ----
  be0e883542232a22c58368620773a567  gcc/rust/hir/rust-ast-lower-format-args.h
  ce342337b00bc7e1af31ad2289113edb  gcc/rust/hir/rust-ast-lower-implitem.cc
  f96a93065b8ef877d4ef5a9601c45679  gcc/rust/hir/rust-ast-lower-implitem.h
! ae9795dedaba016aa96fbe1b10b18096  gcc/rust/hir/rust-ast-lower-item.cc
  375f95d0560ba9e63cb15fd55a381950  gcc/rust/hir/rust-ast-lower-item.h
  3beb02226e0d6306f86a5e930524f669  gcc/rust/hir/rust-ast-lower-pattern.cc
  e5d2a1d427ba7ab163a80fda1d1455a3  gcc/rust/hir/rust-ast-lower-pattern.h
*************** f357dcf5713381e22c7036dfc40716f1  gcc/ru
*** 8451,8458 ****
  a592256ae3a29b72f13dc4c89e94ae71  gcc/rust/lang.opt
  a11b51758cadbfbc20e4c2969af1aa85  gcc/rust/lang.opt.urls
  37d2c9999aa0dbb0df068a1ae29137fa  gcc/rust/lex/rust-input-source.h
! 3bc6c2164a4aea3855a20e109037ca69  gcc/rust/lex/rust-lex.cc
! 1d5ecee79b65ac67ad6fed0bd358a96b  gcc/rust/lex/rust-lex.h
  4ee64c1e58ba8301a0645a9b04e6ba72  gcc/rust/lex/rust-token.cc
  3039004b292442e40b2f6827e82f0780  gcc/rust/lex/rust-token.h
  fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/rust/logo.png
--- 8456,8463 ----
  a592256ae3a29b72f13dc4c89e94ae71  gcc/rust/lang.opt
  a11b51758cadbfbc20e4c2969af1aa85  gcc/rust/lang.opt.urls
  37d2c9999aa0dbb0df068a1ae29137fa  gcc/rust/lex/rust-input-source.h
! 2933bad78341532f4d24709e21386bba  gcc/rust/lex/rust-lex.cc
! 1c9cc53e48e83ef6e080f7fb2cdeff91  gcc/rust/lex/rust-lex.h
  4ee64c1e58ba8301a0645a9b04e6ba72  gcc/rust/lex/rust-token.cc
  3039004b292442e40b2f6827e82f0780  gcc/rust/lex/rust-token.h
  fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/rust/logo.png
*************** fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/ru
*** 8466,8472 ****
  28dcb6b3b1ae5727b2fc184e9b1b6af1  gcc/rust/parse/rust-cfg-parser.cc
  dcbc600defe89f418c72fb56de980c97  gcc/rust/parse/rust-cfg-parser.h
  3883e0105a1a6129a0f9c6847420944c  gcc/rust/parse/rust-parse-error.h
! 07654a34429180f34bce6c7937e70a91  gcc/rust/parse/rust-parse-impl-attribute.hxx
  5cb1a11e82fe180d5382b22d4ea856f6  gcc/rust/parse/rust-parse-impl-expr.hxx
  7cd5687bb8dc329dfcb8bfbc99b456e1  gcc/rust/parse/rust-parse-impl-lexer.cc
  123b237f788df6a919268f90d2188425  gcc/rust/parse/rust-parse-impl-macro.cc
--- 8471,8477 ----
  28dcb6b3b1ae5727b2fc184e9b1b6af1  gcc/rust/parse/rust-cfg-parser.cc
  dcbc600defe89f418c72fb56de980c97  gcc/rust/parse/rust-cfg-parser.h
  3883e0105a1a6129a0f9c6847420944c  gcc/rust/parse/rust-parse-error.h
! a150e926bd6e3d95e1006ef83ba5bc58  gcc/rust/parse/rust-parse-impl-attribute.hxx
  5cb1a11e82fe180d5382b22d4ea856f6  gcc/rust/parse/rust-parse-impl-expr.hxx
  7cd5687bb8dc329dfcb8bfbc99b456e1  gcc/rust/parse/rust-parse-impl-lexer.cc
  123b237f788df6a919268f90d2188425  gcc/rust/parse/rust-parse-impl-macro.cc
*************** d62839a7e1b61c00aa41b146304cd729  gcc/ru
*** 8475,8510 ****
  3535076fa8d48befa963fce350256f23  gcc/rust/parse/rust-parse-impl-pattern.hxx
  ebc262f7414d034296b72ab859fdc482  gcc/rust/parse/rust-parse-impl-ttree.hxx
  c29fa936687b478a9889f3380ee0df68  gcc/rust/parse/rust-parse-impl-utils.hxx
! ab36efaea597de35bea1d3e4271854d5  gcc/rust/parse/rust-parse-impl.hxx
  8188f5994da36c8911bcd5425a5ff10d  gcc/rust/parse/rust-parse-utils.h
  d60ac257492f0b2d13c8c305707dd04a  gcc/rust/parse/rust-parse.cc
! 69616c6c1964f75a1e0d558631c0ee27  gcc/rust/parse/rust-parse.h
  2f3ffa4e5b28a059fadd881c085fd620  gcc/rust/resolve/rust-ast-resolve.h
  7bbf4878ffef5aca403c3c2d662b02e5  gcc/rust/resolve/rust-default-resolver.cc
  b7996557d00b477e5b56587a0f238cd4  gcc/rust/resolve/rust-default-resolver.h
! 5dcd8b077dba9ba29e31c56378b5887e  gcc/rust/resolve/rust-early-name-resolver-2.0.cc
! 6a88c1b7c1fd4ddc4b28ff2c43c0b5bd  gcc/rust/resolve/rust-early-name-resolver-2.0.h
! 85e5adbc06c6ca71160f15e21f150676  gcc/rust/resolve/rust-finalize-imports-2.0.cc
  e35421f45738cdcd47be3ec6730e42ef  gcc/rust/resolve/rust-finalize-imports-2.0.h
  8a259cbd5ed5a4471451f6fedf12e7c8  gcc/rust/resolve/rust-forever-stack.cc
! 1d073e0114293f79396658c956c0767c  gcc/rust/resolve/rust-forever-stack.h
! 396c36499e65a0887b4fbf8c04fe6e2e  gcc/rust/resolve/rust-forever-stack.hxx
  6d2f86dd0b3642cf5cc02bcfc48e7658  gcc/rust/resolve/rust-ice-finalizer.cc
  ba641854f27f5fd4a0cca8fbf125da14  gcc/rust/resolve/rust-ice-finalizer.h
  590df3e3e06f373943c90c7a8fef8040  gcc/rust/resolve/rust-immutable-name-resolution-context.cc
  f5c7461be946307b11f49c3acf706f34  gcc/rust/resolve/rust-immutable-name-resolution-context.h
  391e935848bc0b6c251f2848c5af4f58  gcc/rust/resolve/rust-late-name-resolver-2.0.cc
  196fd10d86327529bddea39566bca9d7  gcc/rust/resolve/rust-late-name-resolver-2.0.h
! 6ef317c46f7fd8b8face1a849bdeaceb  gcc/rust/resolve/rust-name-resolution-context.cc
! 8052df0b2bde0b17a45e5febfb7176bc  gcc/rust/resolve/rust-name-resolution-context.h
! a756853116b3325b286f3bd09e0cd537  gcc/rust/resolve/rust-name-resolver.cc
! 911f8f5bc652cdde8e16ec56e7e35266  gcc/rust/resolve/rust-name-resolver.h
  783acc8c1bd927a5890bd0b703c5a1ae  gcc/rust/resolve/rust-resolve-builtins.cc
  9f7080d5a5a44fbb1d53e8db861f55d6  gcc/rust/resolve/rust-resolve-builtins.h
  f0ecfa8102b52040dd8aa3421fec33bf  gcc/rust/resolve/rust-rib.cc
  6d6d5eff194daa39d1f0a1ba704ee2e8  gcc/rust/resolve/rust-rib.h
! 4c24d464f7ca4c12d3b229a710b30c61  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
! c92385bb955360b66f0493c3199e514d  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
  3f2008592c4958821acded6d659117c0  gcc/rust/rust-attribs.cc
  f1b5a4dd8502cad9b868c27742da2158  gcc/rust/rust-backend.h
  62c087c1db091a2df864b1a43c5fd9e6  gcc/rust/rust-diagnostics.cc
--- 8480,8518 ----
  3535076fa8d48befa963fce350256f23  gcc/rust/parse/rust-parse-impl-pattern.hxx
  ebc262f7414d034296b72ab859fdc482  gcc/rust/parse/rust-parse-impl-ttree.hxx
  c29fa936687b478a9889f3380ee0df68  gcc/rust/parse/rust-parse-impl-utils.hxx
! fa441f482ad5676a141d9068c116c062  gcc/rust/parse/rust-parse-impl.hxx
  8188f5994da36c8911bcd5425a5ff10d  gcc/rust/parse/rust-parse-utils.h
  d60ac257492f0b2d13c8c305707dd04a  gcc/rust/parse/rust-parse.cc
! 14f97ba3d1d98d270b0582ff9b0ae7a2  gcc/rust/parse/rust-parse.h
  2f3ffa4e5b28a059fadd881c085fd620  gcc/rust/resolve/rust-ast-resolve.h
  7bbf4878ffef5aca403c3c2d662b02e5  gcc/rust/resolve/rust-default-resolver.cc
  b7996557d00b477e5b56587a0f238cd4  gcc/rust/resolve/rust-default-resolver.h
! 06aec028cd68772b191060aa24938d04  gcc/rust/resolve/rust-early-name-resolver-2.0.cc
! 4249cce4838e2ebca4e6e19bab77ff49  gcc/rust/resolve/rust-early-name-resolver-2.0.h
! 450113423b1a2f2e8fca9abfc24491ac  gcc/rust/resolve/rust-finalize-imports-2.0.cc
  e35421f45738cdcd47be3ec6730e42ef  gcc/rust/resolve/rust-finalize-imports-2.0.h
  8a259cbd5ed5a4471451f6fedf12e7c8  gcc/rust/resolve/rust-forever-stack.cc
! 668ed1f0f5a0f2f2275cd0571cbe6ff1  gcc/rust/resolve/rust-forever-stack.h
! d87c46e4d5d0f6f97e401bb11d75cc37  gcc/rust/resolve/rust-forever-stack.hxx
  6d2f86dd0b3642cf5cc02bcfc48e7658  gcc/rust/resolve/rust-ice-finalizer.cc
  ba641854f27f5fd4a0cca8fbf125da14  gcc/rust/resolve/rust-ice-finalizer.h
+ 6a154413155737dfad01c2c325c7dd5e  gcc/rust/resolve/rust-identifier-path.cc
+ b92ff8c2ae9e9f07117f272930310dc1  gcc/rust/resolve/rust-identifier-path.h
  590df3e3e06f373943c90c7a8fef8040  gcc/rust/resolve/rust-immutable-name-resolution-context.cc
  f5c7461be946307b11f49c3acf706f34  gcc/rust/resolve/rust-immutable-name-resolution-context.h
  391e935848bc0b6c251f2848c5af4f58  gcc/rust/resolve/rust-late-name-resolver-2.0.cc
  196fd10d86327529bddea39566bca9d7  gcc/rust/resolve/rust-late-name-resolver-2.0.h
! da1975191cedf6a70b4fb3d74c13c039  gcc/rust/resolve/rust-name-resolution-context.cc
! 0ddd1d9a0aa167934e17a0370b0a481b  gcc/rust/resolve/rust-name-resolution-context.h
! 955d3210e5486042dd1e300bbb967f35  gcc/rust/resolve/rust-name-resolution.h
! f984bac25dd2373dcd69d8c3a733a829  gcc/rust/resolve/rust-name-resolver.cc
! 31d42405104553d1024b005e4842c8c2  gcc/rust/resolve/rust-name-resolver.h
  783acc8c1bd927a5890bd0b703c5a1ae  gcc/rust/resolve/rust-resolve-builtins.cc
  9f7080d5a5a44fbb1d53e8db861f55d6  gcc/rust/resolve/rust-resolve-builtins.h
  f0ecfa8102b52040dd8aa3421fec33bf  gcc/rust/resolve/rust-rib.cc
  6d6d5eff194daa39d1f0a1ba704ee2e8  gcc/rust/resolve/rust-rib.h
! 7c5fae78fc245c7f3b6a959877c111d0  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
! 50e39339fed312a6fd27ff44603261ef  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
  3f2008592c4958821acded6d659117c0  gcc/rust/rust-attribs.cc
  f1b5a4dd8502cad9b868c27742da2158  gcc/rust/rust-backend.h
  62c087c1db091a2df864b1a43c5fd9e6  gcc/rust/rust-diagnostics.cc
*************** a7f99c3f3c88cf0a588f4ef4d69193e7  gcc/ru
*** 8518,8524 ****
  aabb2405ea0a5e6eebbde91d56262af9  gcc/rust/rust-location.h
  4ed3043615b8b15ebf0a975ae7e7964f  gcc/rust/rust-object-export.cc
  5ffc502f49b1fc8d440b5aecd8319051  gcc/rust/rust-object-export.h
! ff92567b1bb90e220752e2350511ff97  gcc/rust/rust-session-manager.cc
  8f2aefaf40005ca6aa11d5bdc38386c2  gcc/rust/rust-session-manager.h
  9c4725bebe01459b9a7d4636afdd1d10  gcc/rust/rust-system.h
  600dca9d737e69cf4546974e563a25ab  gcc/rust/rust-target-def.h
--- 8526,8532 ----
  aabb2405ea0a5e6eebbde91d56262af9  gcc/rust/rust-location.h
  4ed3043615b8b15ebf0a975ae7e7964f  gcc/rust/rust-object-export.cc
  5ffc502f49b1fc8d440b5aecd8319051  gcc/rust/rust-object-export.h
! 3d8783a48228976ce589efb49237c2f1  gcc/rust/rust-session-manager.cc
  8f2aefaf40005ca6aa11d5bdc38386c2  gcc/rust/rust-session-manager.h
  9c4725bebe01459b9a7d4636afdd1d10  gcc/rust/rust-system.h
  600dca9d737e69cf4546974e563a25ab  gcc/rust/rust-target-def.h
*************** f9d17454f9a3f63a28b2f424a4b54cc0  gcc/ru
*** 8541,8547 ****
  2e0c72b98aeb86d2eec15f7104ffaa33  gcc/rust/typecheck/rust-hir-trait-resolve.cc
  6b3c965d8fd17b77ca417b28093ea6e9  gcc/rust/typecheck/rust-hir-trait-resolve.h
  42513214f5c095b438bb64d1bd3abbce  gcc/rust/typecheck/rust-hir-type-bounds.h
! 15608e1b1599ce84170d644d61750d0f  gcc/rust/typecheck/rust-hir-type-check-base.cc
  0f4ab4291d61b503e020bfb9289414b9  gcc/rust/typecheck/rust-hir-type-check-base.h
  b4f6bbf96b92718fc689ccfa1cc4e564  gcc/rust/typecheck/rust-hir-type-check-enumitem.cc
  f4277ce8c7f84fcad6d767403000509d  gcc/rust/typecheck/rust-hir-type-check-enumitem.h
--- 8549,8555 ----
  2e0c72b98aeb86d2eec15f7104ffaa33  gcc/rust/typecheck/rust-hir-trait-resolve.cc
  6b3c965d8fd17b77ca417b28093ea6e9  gcc/rust/typecheck/rust-hir-trait-resolve.h
  42513214f5c095b438bb64d1bd3abbce  gcc/rust/typecheck/rust-hir-type-bounds.h
! b747048be4fe6c22589cf2721606db7b  gcc/rust/typecheck/rust-hir-type-check-base.cc
  0f4ab4291d61b503e020bfb9289414b9  gcc/rust/typecheck/rust-hir-type-check-base.h
  b4f6bbf96b92718fc689ccfa1cc4e564  gcc/rust/typecheck/rust-hir-type-check-enumitem.cc
  f4277ce8c7f84fcad6d767403000509d  gcc/rust/typecheck/rust-hir-type-check-enumitem.h
*************** f4277ce8c7f84fcad6d767403000509d  gcc/ru
*** 8549,8558 ****
  86eebb1a9fdc10e3b3db716be9495378  gcc/rust/typecheck/rust-hir-type-check-expr.h
  538448510eee83d3cdd5e11139979114  gcc/rust/typecheck/rust-hir-type-check-implitem.cc
  b5767f59e24736d3d41a91868444e0cc  gcc/rust/typecheck/rust-hir-type-check-implitem.h
! fd6e360a937353d00b6fd04e5030af1e  gcc/rust/typecheck/rust-hir-type-check-item.cc
  e1aa66b1024a0faf4498dfa85056d3b4  gcc/rust/typecheck/rust-hir-type-check-item.h
  b4af5a55d6d7857d9c8c0a97da299ca8  gcc/rust/typecheck/rust-hir-type-check-path.cc
! 0af01bd1bfdcde6a4e9801039146013f  gcc/rust/typecheck/rust-hir-type-check-pattern.cc
  bffd233b66e2222e22ce2d280c8d9f77  gcc/rust/typecheck/rust-hir-type-check-pattern.h
  7e9f5a81fd8ee84014b141f4e73e1ae2  gcc/rust/typecheck/rust-hir-type-check-stmt.cc
  e51af9ea81d7c3d89682ee2c51ebaf03  gcc/rust/typecheck/rust-hir-type-check-stmt.h
--- 8557,8566 ----
  86eebb1a9fdc10e3b3db716be9495378  gcc/rust/typecheck/rust-hir-type-check-expr.h
  538448510eee83d3cdd5e11139979114  gcc/rust/typecheck/rust-hir-type-check-implitem.cc
  b5767f59e24736d3d41a91868444e0cc  gcc/rust/typecheck/rust-hir-type-check-implitem.h
! af54f15055dd1447a419f354c43346e3  gcc/rust/typecheck/rust-hir-type-check-item.cc
  e1aa66b1024a0faf4498dfa85056d3b4  gcc/rust/typecheck/rust-hir-type-check-item.h
  b4af5a55d6d7857d9c8c0a97da299ca8  gcc/rust/typecheck/rust-hir-type-check-path.cc
! 026249ec2dea669bdd79dc37f644fc0d  gcc/rust/typecheck/rust-hir-type-check-pattern.cc
  bffd233b66e2222e22ce2d280c8d9f77  gcc/rust/typecheck/rust-hir-type-check-pattern.h
  7e9f5a81fd8ee84014b141f4e73e1ae2  gcc/rust/typecheck/rust-hir-type-check-stmt.cc
  e51af9ea81d7c3d89682ee2c51ebaf03  gcc/rust/typecheck/rust-hir-type-check-stmt.h
*************** bdc8e07793071547a189f536cd2df063  gcc/ru
*** 8576,8586 ****
  7aa4e70b6d2bdeed13bff6274143e305  gcc/rust/typecheck/rust-tyty-util.cc
  6bb134414950f951dd57b91746458ca5  gcc/rust/typecheck/rust-tyty-util.h
  fcb02130c7b685b134f835bf25092f50  gcc/rust/typecheck/rust-tyty-variance-analysis-private.h
! 4b763a53685364f24c7281fe201c9658  gcc/rust/typecheck/rust-tyty-variance-analysis.cc
  d745c17e84fc1621534e477f38dac840  gcc/rust/typecheck/rust-tyty-variance-analysis.h
  ec0d5651a6bc455064668a10e90fd80d  gcc/rust/typecheck/rust-tyty-visitor.h
! 798e96fff48f83dac8a7486848ef2251  gcc/rust/typecheck/rust-tyty.cc
! 7bd82ff84815b8f9280565b9c799eff7  gcc/rust/typecheck/rust-tyty.h
  aacae8d8512a124e932526c2a1030503  gcc/rust/typecheck/rust-unify.cc
  b9ed06a06760418d2aa26129aee56348  gcc/rust/typecheck/rust-unify.h
  b0eb9e41992d92a94e7be714ee66f9bc  gcc/rust/util/bi-map.h
--- 8584,8594 ----
  7aa4e70b6d2bdeed13bff6274143e305  gcc/rust/typecheck/rust-tyty-util.cc
  6bb134414950f951dd57b91746458ca5  gcc/rust/typecheck/rust-tyty-util.h
  fcb02130c7b685b134f835bf25092f50  gcc/rust/typecheck/rust-tyty-variance-analysis-private.h
! c2f1571113d7181e240b84cfea3bdab5  gcc/rust/typecheck/rust-tyty-variance-analysis.cc
  d745c17e84fc1621534e477f38dac840  gcc/rust/typecheck/rust-tyty-variance-analysis.h
  ec0d5651a6bc455064668a10e90fd80d  gcc/rust/typecheck/rust-tyty-visitor.h
! faa8dbaa0da343990a1d17ccda0cc030  gcc/rust/typecheck/rust-tyty.cc
! 96b6883f3d84306d7899a211ae0b100a  gcc/rust/typecheck/rust-tyty.h
  aacae8d8512a124e932526c2a1030503  gcc/rust/typecheck/rust-unify.cc
  b9ed06a06760418d2aa26129aee56348  gcc/rust/typecheck/rust-unify.h
  b0eb9e41992d92a94e7be714ee66f9bc  gcc/rust/util/bi-map.h
*************** eb1bfe030c9849086601bd0822a7e35a  gcc/ru
*** 8590,8617 ****
  5fab4ccaa5f132cbe9ca8f09047732ad  gcc/rust/util/optional.h
  28960566056dffb6dd86b0c3ad60bf39  gcc/rust/util/rust-abi.cc
  a85e112c6426c604dd9a3a9af712e53b  gcc/rust/util/rust-abi.h
! b60676c4691e0defba8a6e88f2f1d2cb  gcc/rust/util/rust-attribute-values.h
! e9ac4d5452d4c5bdcea3bd40fcae677a  gcc/rust/util/rust-attributes.cc
! bb2a8b1028b777e6996c19d9a4b1b880  gcc/rust/util/rust-attributes.h
  f7a4957c1c7c3fc0e851a38ef997ce72  gcc/rust/util/rust-base62.cc
  a674c0d71a00cc704ca2d16c25f4ba3e  gcc/rust/util/rust-base62.h
  89c5d7d5d733b3877924ef2754c681a2  gcc/rust/util/rust-buffered-queue.h
  6ec9871082c2d8513da233d9b00fd897  gcc/rust/util/rust-canonical-path.h
  0f7f180b9ace5f673dd6184e83872288  gcc/rust/util/rust-cloneable.h
  4b1fe5b8a8e21b47b27a69591e564ce7  gcc/rust/util/rust-codepoint.h
! 10f5191f182eef15185afe9d80290e3e  gcc/rust/util/rust-common.h
  5228dcea6db6f53a46c5b2d18530de14  gcc/rust/util/rust-dir-owner.cc
  d87ca49f50adda86e874b992b90d3a0e  gcc/rust/util/rust-dir-owner.h
  91081b0e58d8416a09cb20a953d24502  gcc/rust/util/rust-dump.h
  3091bc4bdc782d306507e35a2043616b  gcc/rust/util/rust-edition.cc
  88f7642dab3e02fac387a93aad82300a  gcc/rust/util/rust-edition.h
  6bad0adc3974de844f3be9f38aeccec7  gcc/rust/util/rust-ggc.cc
! ce7d9c9aad32c78c1945878b17715fa7  gcc/rust/util/rust-ggc.h
! c5c34c17479577cc2266c9ea468aac4d  gcc/rust/util/rust-hir-map.cc
! c35dd404a34bc22dca6de4b7dc641c2f  gcc/rust/util/rust-hir-map.h
  2bf44e898c6773e49f63aa99ea22f2aa  gcc/rust/util/rust-identifier.h
  9da3d0bbd1f3b83f29287582aaadf7fd  gcc/rust/util/rust-inline-visitor.h
! 78843db3283048d5efe9262a3729ae69  gcc/rust/util/rust-intrinsic-values.h
  fcb0ef58bd45344a4c08af0945cd41b9  gcc/rust/util/rust-keyword-values.cc
  3c394a316c15589123f05ad6573d7e91  gcc/rust/util/rust-keyword-values.h
  c5af83b641a50076b4401975693d372c  gcc/rust/util/rust-lang-item.cc
--- 8598,8625 ----
  5fab4ccaa5f132cbe9ca8f09047732ad  gcc/rust/util/optional.h
  28960566056dffb6dd86b0c3ad60bf39  gcc/rust/util/rust-abi.cc
  a85e112c6426c604dd9a3a9af712e53b  gcc/rust/util/rust-abi.h
! 69981f8af65b8480fe8cdf7d00210c90  gcc/rust/util/rust-attribute-values.h
! 3f35866ad508b754c390827dc84f06eb  gcc/rust/util/rust-attributes.cc
! 1b2fe1c713b7e2f9161f5be177c89309  gcc/rust/util/rust-attributes.h
  f7a4957c1c7c3fc0e851a38ef997ce72  gcc/rust/util/rust-base62.cc
  a674c0d71a00cc704ca2d16c25f4ba3e  gcc/rust/util/rust-base62.h
  89c5d7d5d733b3877924ef2754c681a2  gcc/rust/util/rust-buffered-queue.h
  6ec9871082c2d8513da233d9b00fd897  gcc/rust/util/rust-canonical-path.h
  0f7f180b9ace5f673dd6184e83872288  gcc/rust/util/rust-cloneable.h
  4b1fe5b8a8e21b47b27a69591e564ce7  gcc/rust/util/rust-codepoint.h
! c7e66671b8dd3bbdb56a45f28309335c  gcc/rust/util/rust-common.h
  5228dcea6db6f53a46c5b2d18530de14  gcc/rust/util/rust-dir-owner.cc
  d87ca49f50adda86e874b992b90d3a0e  gcc/rust/util/rust-dir-owner.h
  91081b0e58d8416a09cb20a953d24502  gcc/rust/util/rust-dump.h
  3091bc4bdc782d306507e35a2043616b  gcc/rust/util/rust-edition.cc
  88f7642dab3e02fac387a93aad82300a  gcc/rust/util/rust-edition.h
  6bad0adc3974de844f3be9f38aeccec7  gcc/rust/util/rust-ggc.cc
! 073d902536493807ef695baf24a28444  gcc/rust/util/rust-ggc.h
! cf9962322e0d7824a034c0785ae912f3  gcc/rust/util/rust-hir-map.cc
! 78dff645c18e1bc860ccf4a7aeceb9e3  gcc/rust/util/rust-hir-map.h
  2bf44e898c6773e49f63aa99ea22f2aa  gcc/rust/util/rust-identifier.h
  9da3d0bbd1f3b83f29287582aaadf7fd  gcc/rust/util/rust-inline-visitor.h
! d16c47cc0e7ce29335f7f3b25415e39f  gcc/rust/util/rust-intrinsic-values.h
  fcb0ef58bd45344a4c08af0945cd41b9  gcc/rust/util/rust-keyword-values.cc
  3c394a316c15589123f05ad6573d7e91  gcc/rust/util/rust-keyword-values.h
  c5af83b641a50076b4401975693d372c  gcc/rust/util/rust-lang-item.cc
*************** a286bb88ccb770f18df0020c59b4f06d  gcc/ru
*** 8627,8633 ****
  dc28a64b4aa1349136710af5da9a42cf  gcc/rust/util/rust-unicode.cc
  b7528cd0f3ef048febfc080eef4f41bb  gcc/rust/util/rust-unicode.h
  a299759cc6ba50b5899a39ca2e05e4a1  gcc/rust/util/rust-unwrap-segment.cc
! 140b49237035f0f549c5552d6b9bd148  gcc/rust/util/rust-unwrap-segment.h
  f0f4d8d16db9fe5a40a81d75c7b1bad4  gcc/sancov.cc
  f13ef6f909911f94ad3ea11360068fa1  gcc/sanitizer.def
  b190f6bdcb063b5fca4e844b14150d0c  gcc/sanopt.cc
--- 8635,8641 ----
  dc28a64b4aa1349136710af5da9a42cf  gcc/rust/util/rust-unicode.cc
  b7528cd0f3ef048febfc080eef4f41bb  gcc/rust/util/rust-unicode.h
  a299759cc6ba50b5899a39ca2e05e4a1  gcc/rust/util/rust-unwrap-segment.cc
! 5c807d7e7e80e2200bfd0e42f587912f  gcc/rust/util/rust-unwrap-segment.h
  f0f4d8d16db9fe5a40a81d75c7b1bad4  gcc/sancov.cc
  f13ef6f909911f94ad3ea11360068fa1  gcc/sanitizer.def
  b190f6bdcb063b5fca4e844b14150d0c  gcc/sanopt.cc
*************** d294651bcc46af1abb89e48cd851fd40  gcc/ta
*** 8711,8722 ****
  fe7cc01d7dd25103bc61ab1a33dd54dc  gcc/target-globals.h
  8d0dbf3229219f76ac06bdd053725387  gcc/target-hooks-macros.h
  f24751f278bee1ac8dc861467d9f96a3  gcc/target-insns.def
! 3e3d7d9b6a6a44429654d900524ebbb2  gcc/target.def
! b21c32de4ac41afaa112df92995fbc7b  gcc/target.h
  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
--- 8719,8730 ----
  fe7cc01d7dd25103bc61ab1a33dd54dc  gcc/target-globals.h
  8d0dbf3229219f76ac06bdd053725387  gcc/target-hooks-macros.h
  f24751f278bee1ac8dc861467d9f96a3  gcc/target-insns.def
! 70f546840ce6a6b4bf629a269d3aa8bb  gcc/target.def
! 9ca827d4a70bd09cb862e2583cb8500a  gcc/target.h
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! f68da180dbd15d4e43587cc7ea404c6c  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** a19de812e87b5578a6a15abd41c7d45a  gcc/te
*** 21427,21433 ****
  6cd7ebc8aedad12736b72743c46b506c  gcc/testsuite/cobol.dg/group2/FUNCTION_CURRENT-DATE.cob
  354b0f9ee82914d81ffcc8cb34984d3b  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE-OF-INTEGER.cob
  c481daf6786a601dbb8ebd9a48ff9322  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE-TO-YYYYMMDD.cob
! 99e3749b7b514e928f959c02f10ecb49  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob
  1309189851fee6dc1ba1bebf5399612e  gcc/testsuite/cobol.dg/group2/FUNCTION_DAY-OF-INTEGER.cob
  7183c16a31e41cbf8e027c2e5a6e2d6c  gcc/testsuite/cobol.dg/group2/FUNCTION_DAY-TO-YYYYDDD.cob
  1237c3e824a48b7ee7e38a3d1763dfb0  gcc/testsuite/cobol.dg/group2/FUNCTION_E.cob
--- 21435,21441 ----
  6cd7ebc8aedad12736b72743c46b506c  gcc/testsuite/cobol.dg/group2/FUNCTION_CURRENT-DATE.cob
  354b0f9ee82914d81ffcc8cb34984d3b  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE-OF-INTEGER.cob
  c481daf6786a601dbb8ebd9a48ff9322  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE-TO-YYYYMMDD.cob
! ace7cb22a40e1e5018df95f4edf85868  gcc/testsuite/cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob
  1309189851fee6dc1ba1bebf5399612e  gcc/testsuite/cobol.dg/group2/FUNCTION_DAY-OF-INTEGER.cob
  7183c16a31e41cbf8e027c2e5a6e2d6c  gcc/testsuite/cobol.dg/group2/FUNCTION_DAY-TO-YYYYDDD.cob
  1237c3e824a48b7ee7e38a3d1763dfb0  gcc/testsuite/cobol.dg/group2/FUNCTION_E.cob
*************** eeee984fc971f0592acc52efb13ea93e  gcc/te
*** 22263,22268 ****
--- 22271,22277 ----
  243b5d1d894302a08529e7e4300eea4b  gcc/testsuite/g++.dg/abi/mangle81.C
  4023501102c8e0f81d65b42d89188330  gcc/testsuite/g++.dg/abi/mangle82.C
  68ffac7c297dac3aa02f23faf529b56f  gcc/testsuite/g++.dg/abi/mangle83.C
+ e4d26caeda2af1863c043ca61abdd37d  gcc/testsuite/g++.dg/abi/mangle84.C
  8c95c7ea3760b8a1e7954b3da9f45a16  gcc/testsuite/g++.dg/abi/mangle9.C
  d85264fae2b4c2eb4d8629cb29c42e90  gcc/testsuite/g++.dg/abi/no-linkage-expr1.C
  0cccf158230e7bf1d438169164c8020a  gcc/testsuite/g++.dg/abi/no-weak1.C
*************** b62cd97dedd00a9fbbd509c4e3d6264b  gcc/te
*** 22454,22459 ****
--- 22463,22469 ----
  8b1aa8c61051ed1cee68c19feebe90b0  gcc/testsuite/g++.dg/asan/asan_test.cc
  7b5f694f7ad9cbae4aab558727eaceaf  gcc/testsuite/g++.dg/asan/asan_test_config.h
  a455db6e8dc9b02d6f2c59488f513896  gcc/testsuite/g++.dg/asan/asan_test_utils.h
+ eedaa19d1ebbb6f2ecc8a364fb1ddecd  gcc/testsuite/g++.dg/asan/coroutines1.C
  5e2fbdaa2b9b39d6bf1f290e581722f4  gcc/testsuite/g++.dg/asan/deep-stack-uaf-1.C
  0acf775bdbd67ca675dda4934aeacb5b  gcc/testsuite/g++.dg/asan/deep-tail-call-1.C
  b2988101c810da55bd5189f442c038b7  gcc/testsuite/g++.dg/asan/deep-thread-stack-1.C
*************** f97289592c07f8ec90cf0426dc7fb24d  gcc/te
*** 22910,22915 ****
--- 22920,22926 ----
  47f8344a4cc52085ec4cc2bd5bb5e3af  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-3.C
  7b85feb2692641a327f9da443c0864f8  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-4.C
  b6a1abc97434f28d3e837d5d66adda4a  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7.C
+ 069ec2b2ec38ae933263ac328a3db3ec  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.lambda.closure.p10.C
  02ab754564954ef185777cf307e8b7dc  gcc/testsuite/g++.dg/contracts/cpp26/function-contract-specifier-seq-error.C
  753463b10345184f12cb46eb08a57c7c  gcc/testsuite/g++.dg/contracts/cpp26/function-contract-specifier-seq.C
  adc0af6b60c5a74750b3c0ff85f1c2b3  gcc/testsuite/g++.dg/contracts/cpp26/intro.compliance.general.p2.3.4.C
*************** ef7a17d165b83f4a1f6f2146ca741d68  gcc/te
*** 23107,23113 ****
  dd1a29fabad954f753ab8031a31e31d0  gcc/testsuite/g++.dg/coroutines/pr104051-0.C
  c8f94348fa3a6378ec5c6fd9589d0c4c  gcc/testsuite/g++.dg/coroutines/pr104051-1.C
  b134bf48c5d1c37a3f48e0c7f25bd714  gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
! acd4b7e351c1cfe5342e8fe75093f59b  gcc/testsuite/g++.dg/coroutines/pr105287.C
  3ed2837ec0a605227e3db035996b80d7  gcc/testsuite/g++.dg/coroutines/pr105301.C
  3736008e5e89f5e62c30e8101e5acef0  gcc/testsuite/g++.dg/coroutines/pr105475-1.C
  8d0fa780fa98582b56eeda555793b5a4  gcc/testsuite/g++.dg/coroutines/pr105475-2.C
--- 23118,23124 ----
  dd1a29fabad954f753ab8031a31e31d0  gcc/testsuite/g++.dg/coroutines/pr104051-0.C
  c8f94348fa3a6378ec5c6fd9589d0c4c  gcc/testsuite/g++.dg/coroutines/pr104051-1.C
  b134bf48c5d1c37a3f48e0c7f25bd714  gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
! f54d42ee8e8df49f95a66d4102587e8e  gcc/testsuite/g++.dg/coroutines/pr105287.C
  3ed2837ec0a605227e3db035996b80d7  gcc/testsuite/g++.dg/coroutines/pr105301.C
  3736008e5e89f5e62c30e8101e5acef0  gcc/testsuite/g++.dg/coroutines/pr105475-1.C
  8d0fa780fa98582b56eeda555793b5a4  gcc/testsuite/g++.dg/coroutines/pr105475-2.C
*************** a086058df225e5fda842f4ebd12d6dbd  gcc/te
*** 23151,23156 ****
--- 23162,23169 ----
  4ba2a97e93d914ad5510f0a3df7d5dba  gcc/testsuite/g++.dg/coroutines/pr120273.C
  639bf3d722d542a1aab7bcbf3114716a  gcc/testsuite/g++.dg/coroutines/pr120453.C
  5e0a6f554522f0537a21112c91d33895  gcc/testsuite/g++.dg/coroutines/pr120495.C
+ cf70192c32f53d0ffe102b573d4080be  gcc/testsuite/g++.dg/coroutines/pr121643.C
+ 81dd0f7a2283cf853dddabb957fce0eb  gcc/testsuite/g++.dg/coroutines/pr123975.C
  cbb42d13b1660a8eb1d40a3d88308140  gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C
  d9151fc224e4913ed7ffacd748769917  gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C
  e9b715cb41c54f5b179b4725b788e338  gcc/testsuite/g++.dg/coroutines/pr93458-3-missing-handle.C
*************** f0e116d82b5a6de3a9e5af9a0a9f86f6  gcc/te
*** 24442,24447 ****
--- 24455,24461 ----
  e0ec3b8dde104f6e13caaaf049aa05c6  gcc/testsuite/g++.dg/cpp0x/deleted16a.C
  739d0ece28a2f02a16bc7821fc37839c  gcc/testsuite/g++.dg/cpp0x/deleted17.C
  5b4f225619f296097880cecd253cfafa  gcc/testsuite/g++.dg/cpp0x/deleted18.C
+ 0d226107840844124f0e70cd70522c49  gcc/testsuite/g++.dg/cpp0x/deleted19.C
  80874d553919bf312b4841380187e0f9  gcc/testsuite/g++.dg/cpp0x/deleted2.C
  a9129f4cd34b93dbe745e3849ea1c38a  gcc/testsuite/g++.dg/cpp0x/deleted3.C
  d6f65d86ea217a2efd4c31ebedc9c9db  gcc/testsuite/g++.dg/cpp0x/deleted4.C
*************** ad90458ad42ff08d4a1c948d0770dd89  gcc/te
*** 28000,28006 ****
  fe56bf124d429ccaa887937cdd60d625  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda17.C
  d3a5a9df5514968709862976635c8094  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda18.C
  4882304f120b6e2ec91e0db6c07d5eb4  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda19.C
! 87abca8eb660254fbf201e771eef3751  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
  15806046d4b84c665a24477e28c66de8  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C
  53a006b53f4f642ce54703dcb0679625  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda21.C
  7b0add104f416bde19cf186e35bc773a  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda22.C
--- 28014,28020 ----
  fe56bf124d429ccaa887937cdd60d625  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda17.C
  d3a5a9df5514968709862976635c8094  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda18.C
  4882304f120b6e2ec91e0db6c07d5eb4  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda19.C
! 0221584b2593a7b483e89830bc37b1d7  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
  15806046d4b84c665a24477e28c66de8  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C
  53a006b53f4f642ce54703dcb0679625  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda21.C
  7b0add104f416bde19cf186e35bc773a  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda22.C
*************** b2919427c96be25ae3a72933323c8de1  gcc/te
*** 28053,28058 ****
--- 28067,28075 ----
  794e5eb1bd211982315d61651af3bbaa  gcc/testsuite/g++.dg/cpp23/lambda-attr1.C
  1347e1fb0d78731bd360d6d44225ea34  gcc/testsuite/g++.dg/cpp23/lambda-attr2.C
  0f7cc24302f8905c017e6e90606b714c  gcc/testsuite/g++.dg/cpp23/lambda-scope1.C
+ 04a38c9b7192cb6b7b0561e0de0f24df  gcc/testsuite/g++.dg/cpp23/lambda-scope10.C
+ 370e6b158571cc0b62c372e24c999b28  gcc/testsuite/g++.dg/cpp23/lambda-scope10a.C
+ c271f90d8014ef670f281e917b599b0c  gcc/testsuite/g++.dg/cpp23/lambda-scope11.C
  3ee2b5c0fe1ab038d1ca4bcefbd4bad1  gcc/testsuite/g++.dg/cpp23/lambda-scope2.C
  b28e2c81690bb1a3c573d2b64dd1e7b7  gcc/testsuite/g++.dg/cpp23/lambda-scope3.C
  b8668b66fbdc7b96d059a1fec1c10738  gcc/testsuite/g++.dg/cpp23/lambda-scope4.C
*************** e8e285d5f17f18710b7136f0f788f9c8  gcc/te
*** 28142,28147 ****
--- 28159,28165 ----
  3b5f2464be3b6237317c355178b6abbf  gcc/testsuite/g++.dg/cpp26/constexpr-eh16.C
  65a22a49338fcb7526f2379bbc7d8666  gcc/testsuite/g++.dg/cpp26/constexpr-eh17.C
  a6073e074c44b5f830037756b9110934  gcc/testsuite/g++.dg/cpp26/constexpr-eh18.C
+ 795fd0b3bb6cd5fcab8ed3203d375892  gcc/testsuite/g++.dg/cpp26/constexpr-eh19.C
  5dd3cceecaa6ec4f3aba7e8c298dc74c  gcc/testsuite/g++.dg/cpp26/constexpr-eh2.C
  26c369ca53153ae946088791d0790fa5  gcc/testsuite/g++.dg/cpp26/constexpr-eh3.C
  6ef0a812fa0528be79afea3ada17a5eb  gcc/testsuite/g++.dg/cpp26/constexpr-eh4.C
*************** b709f3966d2ad80e5871b667d715e985  gcc/te
*** 28240,28246 ****
--- 28258,28266 ----
  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
+ 2c3778243a2b5928285af41a533d9a8d  gcc/testsuite/g++.dg/cpp26/expansion-stmt39.C
  05972a123b20a66b9c7899c2bb0b5042  gcc/testsuite/g++.dg/cpp26/expansion-stmt4.C
+ c52edd0a13ff5fb8338be44eb349b17c  gcc/testsuite/g++.dg/cpp26/expansion-stmt40.C
  7cfc2afc603d55bfd66b320b3d190acd  gcc/testsuite/g++.dg/cpp26/expansion-stmt5.C
  8419176a2bf5898de53901daf6efe2a9  gcc/testsuite/g++.dg/cpp26/expansion-stmt6.C
  f3b34592f993c84838b0ef36dad5ed5e  gcc/testsuite/g++.dg/cpp26/expansion-stmt7.C
*************** f078be8dacba182f7d71dbd5dc780d67  gcc/te
*** 29020,29025 ****
--- 29040,29046 ----
  d5cf00e36fa4ba1a100d8370416e1bc2  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid4.C
  046d5a749301b0abcf59d5e4189c4e98  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid5.C
  a9a14bb307d24157192c2d361ae5fcbe  gcc/testsuite/g++.dg/cpp2a/constexpr-union1.C
+ 7c347df7a530f4b435982cde93fd790e  gcc/testsuite/g++.dg/cpp2a/constexpr-union10.C
  4fd1e359f10f22a9e4ac5656c39367e2  gcc/testsuite/g++.dg/cpp2a/constexpr-union2.C
  64db89fe8184ef8910fbbef6f4db6984  gcc/testsuite/g++.dg/cpp2a/constexpr-union3.C
  c0b015cd02e07242444c2700f64e070a  gcc/testsuite/g++.dg/cpp2a/constexpr-union4.C
*************** cda34ab516f0f3b749efab4ba8f525af  gcc/te
*** 29269,29274 ****
--- 29290,29296 ----
  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
+ 4df914202d094298eb4ac77045f4eae2  gcc/testsuite/g++.dg/cpp2a/lambda-targ25.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
*************** af019eee15e37fe7fad2b4c7a1a60836  gcc/te
*** 30712,30717 ****
--- 30734,30741 ----
  96dbd65cf596542a71762b67a05cb112  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size2.C
  8ce26671f7964a858fabd4acfa8478fc  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size3.C
  4d8fbcf129f67827c9228516eae776cb  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size4.C
+ d94fc05316fd86eaef9bdba4bbe5c920  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size5.C
+ 0467976b5cf339e7d91f41d2b063f6a8  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size6.C
  2688425f4bb09561395ab602acbbe5c1  gcc/testsuite/g++.dg/ext/builtin1.C
  98144b066e434870194391993772ca2d  gcc/testsuite/g++.dg/ext/builtin10.C
  0159469d5f1eba2e6013c4c9e15f33ea  gcc/testsuite/g++.dg/ext/builtin11.C
*************** a224cdf89df755372b414897a4fd0df0  gcc/te
*** 31837,31842 ****
--- 31861,31867 ----
  44956ee7048ef4daaa13755b811fe3ca  gcc/testsuite/g++.dg/gomp/pr120180-1.C
  996def323ebaae8304a543404625c64a  gcc/testsuite/g++.dg/gomp/pr121977.C
  b30c571b03f08db4a17f3299d04b20fa  gcc/testsuite/g++.dg/gomp/pr123597.C
+ e57c36b40c4fe73e0699cc16965bc1d3  gcc/testsuite/g++.dg/gomp/pr124700.C
  539bba6df5330b7a6631eca5665a0899  gcc/testsuite/g++.dg/gomp/pr24849.C
  78ea34fd7a1a2767f61a703271e7070a  gcc/testsuite/g++.dg/gomp/pr25874.C
  93a85a09acfdf011a86ff95fc9184a94  gcc/testsuite/g++.dg/gomp/pr25996.C
*************** a0196ebfddfdcb265613530b34c75302  gcc/te
*** 35910,35915 ****
--- 35935,35941 ----
  d0b5965b4982fc2453056380914a719f  gcc/testsuite/g++.dg/other/anon-union5.C
  498c728995604cce6cd6fb0603cfbad8  gcc/testsuite/g++.dg/other/anon-union6.C
  4f90ececca3ff47581ca71749fda9c86  gcc/testsuite/g++.dg/other/anon-union7.C
+ fe4ccc701c313926fdf04eb36eca6435  gcc/testsuite/g++.dg/other/anon-union8.C
  25bec11b40119085408d52eaa5b86f6e  gcc/testsuite/g++.dg/other/anon2.C
  459d65add342ef87588ce96c8871a57f  gcc/testsuite/g++.dg/other/anon3.C
  735bc52cab8eca56a711c2c10845c981  gcc/testsuite/g++.dg/other/anon4.C
*************** ba996bbdd4fa7d29eb83826ce56286db  gcc/te
*** 37382,37387 ****
--- 37408,37415 ----
  0718aa80b2f3f6003982c05c87f30063  gcc/testsuite/g++.dg/reflect/access_context2.C
  5672929e36bfce1255d60bd4305dcc71  gcc/testsuite/g++.dg/reflect/access_context3.C
  79b6c11dad254773021e78868fb03cbb  gcc/testsuite/g++.dg/reflect/adl1.C
+ 5c46e879dd2e662303fadc44a009d5a0  gcc/testsuite/g++.dg/reflect/alias1.C
+ b6b6837c9c6945d15aae1007c9655611  gcc/testsuite/g++.dg/reflect/alias2.C
  a1fd3a6a97a773f4f193235ad05dca1c  gcc/testsuite/g++.dg/reflect/alignment_of1.C
  db186235554be9b7c4c4cd1d64102448  gcc/testsuite/g++.dg/reflect/alignment_of2.C
  11bc606636185e720abfec102a446450  gcc/testsuite/g++.dg/reflect/annotations1.C
*************** a62b17736737c20ad3cc85624fbd03c9  gcc/te
*** 37468,37473 ****
--- 37496,37502 ----
  7c8dd401466452efde37fb47896afe10  gcc/testsuite/g++.dg/reflect/current_function1.C
  abe64eefcda9fd970ebcb9a20a6a1e05  gcc/testsuite/g++.dg/reflect/current_function2.C
  0e619c7a366594b345d4deedcce937a7  gcc/testsuite/g++.dg/reflect/current_namespace1.C
+ 78264bb85ba3fc9eed3eeb93f4c19f36  gcc/testsuite/g++.dg/reflect/cwg3149.C
  4e6d9aa2459457638b2bf169d9aa74d9  gcc/testsuite/g++.dg/reflect/cwg3153.C
  70bab2b27c8038d6662ee1a47f3a127b  gcc/testsuite/g++.dg/reflect/data_member_spec1.C
  7a39a909b30dd98b1d59e84153ab5cb1  gcc/testsuite/g++.dg/reflect/data_member_spec2.C
*************** a90bbaada7db11433927609f58ce9807  gcc/te
*** 37479,37484 ****
--- 37508,37514 ----
  ba847f7d57294ccd6b282e81baaaf83b  gcc/testsuite/g++.dg/reflect/dealias2.C
  c9d4dece58db866f00e39bcc4cadb5f8  gcc/testsuite/g++.dg/reflect/dealias3.C
  32ac321c1bbb2d8cc91186a3d6039f67  gcc/testsuite/g++.dg/reflect/decltype1.C
+ 3fc7a14995ce0268dbe3d3811f8d6943  gcc/testsuite/g++.dg/reflect/decltype2.C
  0812d60a7ffe2d181412a252920fcaee  gcc/testsuite/g++.dg/reflect/defarg1.C
  35fb9a6b3789fdd6b10d806ba69be6d5  gcc/testsuite/g++.dg/reflect/define_aggregate1.C
  878bb2f33fc60ea5547e45259744a7a2  gcc/testsuite/g++.dg/reflect/define_aggregate10.C
*************** f1ede9a4cbcc839fab9cf35f8ac6f8ed  gcc/te
*** 37495,37508 ****
  76b6ad1540a13225c11e60306e2fe45c  gcc/testsuite/g++.dg/reflect/define_static_array3.C
  8f4ed059665ea7a94243fa99cb792e98  gcc/testsuite/g++.dg/reflect/define_static_array4.C
  c02515caef100c916d56859e612c414f  gcc/testsuite/g++.dg/reflect/define_static_array5.C
  29f60cd4f06a2aeaa33d6d03cd800fb1  gcc/testsuite/g++.dg/reflect/define_static_object1.C
! 2f43e04330db46fe9e841fa7d43b1c5a  gcc/testsuite/g++.dg/reflect/define_static_object2.C
  b7ed52abe86f4f7c8db2ebf610edeae3  gcc/testsuite/g++.dg/reflect/define_static_string1.C
  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
--- 37525,37540 ----
  76b6ad1540a13225c11e60306e2fe45c  gcc/testsuite/g++.dg/reflect/define_static_array3.C
  8f4ed059665ea7a94243fa99cb792e98  gcc/testsuite/g++.dg/reflect/define_static_array4.C
  c02515caef100c916d56859e612c414f  gcc/testsuite/g++.dg/reflect/define_static_array5.C
+ b8ed99a2435372d4ed69a4f92647aa9c  gcc/testsuite/g++.dg/reflect/define_static_array6.C
  29f60cd4f06a2aeaa33d6d03cd800fb1  gcc/testsuite/g++.dg/reflect/define_static_object1.C
! 3629a70faac44351a2c0c453ef9dbe51  gcc/testsuite/g++.dg/reflect/define_static_object2.C
  b7ed52abe86f4f7c8db2ebf610edeae3  gcc/testsuite/g++.dg/reflect/define_static_string1.C
  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
+ 488bc5c168024b6b780c8eb7f6bcfbdb  gcc/testsuite/g++.dg/reflect/dep14.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
*************** bcbfe7a6746a7cf5019e4beb91dfc6e1  gcc/te
*** 37699,37705 ****
  75564b7e49fd2ca4aec72df58d4ce257  gcc/testsuite/g++.dg/reflect/lex1.C
  5047184a71ebc4613c16d57f58d02456  gcc/testsuite/g++.dg/reflect/lex2.C
  f6803b822ccb79238b24868d977699f4  gcc/testsuite/g++.dg/reflect/lwg4556.C
! 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
--- 37731,37742 ----
  75564b7e49fd2ca4aec72df58d4ce257  gcc/testsuite/g++.dg/reflect/lex1.C
  5047184a71ebc4613c16d57f58d02456  gcc/testsuite/g++.dg/reflect/lex2.C
  f6803b822ccb79238b24868d977699f4  gcc/testsuite/g++.dg/reflect/lwg4556.C
! 7eb326f1731ded10f833d6bc1b6a8a35  gcc/testsuite/g++.dg/reflect/mangle1.C
! 8adb63c51e98fb1692e89416e0887655  gcc/testsuite/g++.dg/reflect/mangle2.C
! ea720c7f072506efc4d68f19c28f450d  gcc/testsuite/g++.dg/reflect/mangle3.C
! db2ad60789319025e03e2cd9afc4409b  gcc/testsuite/g++.dg/reflect/mangle4.C
! 13986cd705d67b3899c41c5cf5ce22c2  gcc/testsuite/g++.dg/reflect/mangle5.C
! 2f2f67f28be6797089b2072e815b969d  gcc/testsuite/g++.dg/reflect/mangle6.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
*************** d7bf4b2b4a12e0e7c5f568c235fe50c9  gcc/te
*** 37717,37722 ****
--- 37754,37760 ----
  5a76580cb5157802057a41baaeb6e392  gcc/testsuite/g++.dg/reflect/member20.C
  181521b03df5dc478a1ac9257c71682a  gcc/testsuite/g++.dg/reflect/member21.C
  8f0a225791758f8c40167f8e5110273d  gcc/testsuite/g++.dg/reflect/member22.C
+ 030145065ba1d9976a7d6a1a1d2274c7  gcc/testsuite/g++.dg/reflect/member23.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
*************** c6a71c4b6f87d8009162c82104ba6ea6  gcc/te
*** 37751,37756 ****
--- 37789,37795 ----
  9d8f7299a9aea98b5c1b82f0f3a3dc30  gcc/testsuite/g++.dg/reflect/null3.C
  43e0baff1477b6b498e5c1d34b4afe5d  gcc/testsuite/g++.dg/reflect/null4.C
  0213453633af68fab3da41d83281e0be  gcc/testsuite/g++.dg/reflect/null5.C
+ a2d565e73332bd6625619f67e5568365  gcc/testsuite/g++.dg/reflect/null6.C
  ff22c9122c2c0fa7a5a06f539fcb9abe  gcc/testsuite/g++.dg/reflect/object_of1.C
  87988cb2a7a1da0cf4b8c94fa491b634  gcc/testsuite/g++.dg/reflect/object_of2.C
  655256ebf0d921eb7e5600d6494c42e0  gcc/testsuite/g++.dg/reflect/object_of3.C
*************** c9a28f1923f13abf7706e0302ed5209c  gcc/te
*** 37828,37833 ****
--- 37867,37874 ----
  f95ce0044b4db49d5f146e5fbe45875c  gcc/testsuite/g++.dg/reflect/reflect_constant8.C
  853d9cf6eccdb9acbc7b5f43613db0db  gcc/testsuite/g++.dg/reflect/reflect_constant9.C
  61d0a64ce5f607baeb67ce80bb50f4d7  gcc/testsuite/g++.dg/reflect/reflect_constant_array1.C
+ dadda107af5d7dd69715a4f20236adcf  gcc/testsuite/g++.dg/reflect/reflect_constant_array10.C
+ 0e1fde754081d183f9fa8134f9e44c84  gcc/testsuite/g++.dg/reflect/reflect_constant_array11.C
  b1917b5ba841920599e01cb07bcd5bbe  gcc/testsuite/g++.dg/reflect/reflect_constant_array2.C
  50112030f94d83d432e32d44f823fcb3  gcc/testsuite/g++.dg/reflect/reflect_constant_array3.C
  5142cc73273428503aa2dbaf27e9128d  gcc/testsuite/g++.dg/reflect/reflect_constant_array4.C
*************** b29f09bce5fedc3211b6eb400cc62e72  gcc/te
*** 37835,37840 ****
--- 37876,37882 ----
  10cca31db14cf9dbc2eb39aa6b5c7046  gcc/testsuite/g++.dg/reflect/reflect_constant_array6.C
  8e6f55ab6834dd537136aaffcee77d98  gcc/testsuite/g++.dg/reflect/reflect_constant_array7.C
  9801a13ac8ff3735afc5f6be337a0893  gcc/testsuite/g++.dg/reflect/reflect_constant_array8.C
+ 783f530541a10963f84beeb7bb122ede  gcc/testsuite/g++.dg/reflect/reflect_constant_array9.C
  7282880efced8bee225c43aec4c50a71  gcc/testsuite/g++.dg/reflect/reflect_constant_string1.C
  cc8c2137143cd854b6630dc3dcd4973f  gcc/testsuite/g++.dg/reflect/reflect_constant_string2.C
  1e3345a57a06ffa1bd23a544151f8b02  gcc/testsuite/g++.dg/reflect/reflect_function1.C
*************** b54591a1a4cb544aba9831eba6b8174b  gcc/te
*** 37854,37859 ****
--- 37896,37902 ----
  ae74f7e0fcb5cd481ffc4f5cdabaaea7  gcc/testsuite/g++.dg/reflect/splice1.C
  97e5f556b97d037ef366e43588c23406  gcc/testsuite/g++.dg/reflect/splice10.C
  af18aac150e2da16b8511edc29458f59  gcc/testsuite/g++.dg/reflect/splice11.C
+ d20c15bde9b075e8a72181fbeddab319  gcc/testsuite/g++.dg/reflect/splice12.C
  c80b1bac424d9304fac93754834f224e  gcc/testsuite/g++.dg/reflect/splice2.C
  e0d01c0d72438804b2438e81debbc181  gcc/testsuite/g++.dg/reflect/splice3.C
  c900182698e22d48583b4bbd611fe1fb  gcc/testsuite/g++.dg/reflect/splice4.C
*************** a97f51af196e9b66ef9d840989598a75  gcc/te
*** 37906,37912 ****
  a66e1dc9964c7702e9ecdb5be8553fb5  gcc/testsuite/g++.dg/reflect/type_trait10.C
  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
--- 37949,37955 ----
  a66e1dc9964c7702e9ecdb5be8553fb5  gcc/testsuite/g++.dg/reflect/type_trait10.C
  4fb586d7efeeabc9fafb9d8f9f4ec796  gcc/testsuite/g++.dg/reflect/type_trait11.C
  9b33e0cb088a6815bc1f1c4cb74a8aa5  gcc/testsuite/g++.dg/reflect/type_trait12.C
! 485cae337b48a98f34af212dc8b5ceb5  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
*************** f298eddbaaad3dfdc15f6cf9683ff08a  gcc/te
*** 39917,39922 ****
--- 39960,39966 ----
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
  736ee33c46ea4f87e83844e8cbe04d6c  gcc/testsuite/g++.dg/torture/pr119969.C
+ b13ff64f74236106c58ee8eec24c78a6  gcc/testsuite/g++.dg/torture/pr120098.C
  34ccf862a19942e4a76e7409c03669c6  gcc/testsuite/g++.dg/torture/pr120119-1.C
  a7a00125ef903c9e5ba25788e8c60eab  gcc/testsuite/g++.dg/torture/pr120721.C
  4d68e68ec1a7391fe652111cdb89b309  gcc/testsuite/g++.dg/torture/pr120987-1.C
*************** fd8e483532e07909315ca8711ef4503b  gcc/te
*** 39934,39939 ****
--- 39978,39984 ----
  61fcf1bc001bfcf25117da95aaa8edd8  gcc/testsuite/g++.dg/torture/pr124135-1.C
  101facde39ac59f9b142786ef251d0ca  gcc/testsuite/g++.dg/torture/pr124135-2.C
  8e35f2bc9bda0c081ac5347d83e9f80c  gcc/testsuite/g++.dg/torture/pr124137.C
+ 9e83dc5ec48088cace8aa33ee2acb251  gcc/testsuite/g++.dg/torture/pr124875.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
  e980bf95890544d46879b89f7aa98df6  gcc/testsuite/g++.dg/torture/pr30567.C
*************** bb04402a5286da0c2b2bd970e15a7c0a  gcc/te
*** 41040,41046 ****
  750c3d825061bd1ca9b4587c0081a7aa  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
  c9f2a8124f076b5bb673e6fab2b06069  gcc/testsuite/g++.dg/vect/vect-novector-pragma_2.cc
  d755361dca7e8678de65cef4fd2ec24d  gcc/testsuite/g++.dg/vect/vect-pr107690.cc
! 6ea043da31323bceea5e262689eb3373  gcc/testsuite/g++.dg/vect/vect-pr124037.cc
  0a23130ea4ce46e0a0236cd4d6c8e7fa  gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
  27913e4564f67b015965c39a5afd64d0  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
--- 41085,41091 ----
  750c3d825061bd1ca9b4587c0081a7aa  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
  c9f2a8124f076b5bb673e6fab2b06069  gcc/testsuite/g++.dg/vect/vect-novector-pragma_2.cc
  d755361dca7e8678de65cef4fd2ec24d  gcc/testsuite/g++.dg/vect/vect-pr107690.cc
! 49fdf67831ace426ac5fdb16e24fcf32  gcc/testsuite/g++.dg/vect/vect-pr124037.cc
  0a23130ea4ce46e0a0236cd4d6c8e7fa  gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
  27913e4564f67b015965c39a5afd64d0  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
*************** c84bc79847f1966edf2b1f4b3b013e19  gcc/te
*** 41261,41275 ****
  f1360330e2c03adfb9e1efd9136d3f31  gcc/testsuite/g++.dg/warn/Winterference.H
  617b1baf48ffae995c6198567500b3c3  gcc/testsuite/g++.dg/warn/Winvalid-memory-model-2.C
  6cb792f5a5a29a4931676fce151db135  gcc/testsuite/g++.dg/warn/Winvalid-memory-model.C
! dfbfe78280378b98a8f5518da6b9efa2  gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C
  46a0dc2739da6ef3dec0ccf4a8f1bd5d  gcc/testsuite/g++.dg/warn/Wkeyword-macro-10.C
! 5d1777df16d4987b2e87c9bb868385fa  gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C
  31939dacc894b83bf87b967919a9307f  gcc/testsuite/g++.dg/warn/Wkeyword-macro-3.C
! 09a84db0f2b2fd3a239eb544d2905ecd  gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C
! 499b6b42e74c9ed3185d166d9e6ffca2  gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C
  a3c8283eeafbf13da92766551f2fd977  gcc/testsuite/g++.dg/warn/Wkeyword-macro-6.C
! c44b482b3e5629ae60bc4bb3aba71f0e  gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C
! c58ddf7b4d6a7e65c36e0a8744324095  gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C
  54ec408185e87ed7c6df79dfec246f29  gcc/testsuite/g++.dg/warn/Wkeyword-macro-9.C
  90a871726cae9dea93ce0da4b5bb7b2c  gcc/testsuite/g++.dg/warn/Wlogical-op-1.C
  13ee95f1cd2836b595541e2a9917c06d  gcc/testsuite/g++.dg/warn/Wlogical-op-2.C
--- 41306,41320 ----
  f1360330e2c03adfb9e1efd9136d3f31  gcc/testsuite/g++.dg/warn/Winterference.H
  617b1baf48ffae995c6198567500b3c3  gcc/testsuite/g++.dg/warn/Winvalid-memory-model-2.C
  6cb792f5a5a29a4931676fce151db135  gcc/testsuite/g++.dg/warn/Winvalid-memory-model.C
! d554bb6f7fc49fa2be2114e5d2f1bd07  gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C
  46a0dc2739da6ef3dec0ccf4a8f1bd5d  gcc/testsuite/g++.dg/warn/Wkeyword-macro-10.C
! 17e77e62941094c0a88c7c296201a543  gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C
  31939dacc894b83bf87b967919a9307f  gcc/testsuite/g++.dg/warn/Wkeyword-macro-3.C
! 71baa2423aeb61871029c7b12296cb6c  gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C
! 83fee327e6fc0bbe0709d117b4f27389  gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C
  a3c8283eeafbf13da92766551f2fd977  gcc/testsuite/g++.dg/warn/Wkeyword-macro-6.C
! 38e532ebecc98d98f7557ddf768e02ca  gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C
! 6c18f4104646e8e76f55c7503bd06a73  gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C
  54ec408185e87ed7c6df79dfec246f29  gcc/testsuite/g++.dg/warn/Wkeyword-macro-9.C
  90a871726cae9dea93ce0da4b5bb7b2c  gcc/testsuite/g++.dg/warn/Wlogical-op-1.C
  13ee95f1cd2836b595541e2a9917c06d  gcc/testsuite/g++.dg/warn/Wlogical-op-2.C
*************** b20dd8a4cdcf6dd51489456d26453893  gcc/te
*** 47242,47247 ****
--- 47287,47293 ----
  ffc2d0352a16ed7c76c12152bde69753  gcc/testsuite/gcc.c-torture/compile/pr123703.c
  b8b52e8f02c4a8a36a13b5243b69bbe6  gcc/testsuite/gcc.c-torture/compile/pr124250.c
  2d7ab09400234f73cb2751fd18e97cce  gcc/testsuite/gcc.c-torture/compile/pr124280.c
+ 39f558958106fc6454b8884cf937791f  gcc/testsuite/gcc.c-torture/compile/pr124643.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
  ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
  86f3d5cf87d24e97aa663b79f2d0ac5d  gcc/testsuite/gcc.c-torture/compile/pr12899.c
*************** d217543f954eb3f31e246355824f653a  gcc/te
*** 52043,52048 ****
--- 52089,52095 ----
  c446cf331d60d19eea3950d7f444f8b3  gcc/testsuite/gcc.dg/bitint-125.c
  240ade406c4daf5c641e5c4f0bdd5ef5  gcc/testsuite/gcc.dg/bitint-126.c
  3fa6e340272f61c5b425b6a54732c94f  gcc/testsuite/gcc.dg/bitint-127.c
+ a7f36d213cef759e44b1ea369391b70d  gcc/testsuite/gcc.dg/bitint-128.c
  aa6e262f1d508ec048e76ac4af6675a4  gcc/testsuite/gcc.dg/bitint-13.c
  e6db29256563268a3c327706e78c79a4  gcc/testsuite/gcc.dg/bitint-14.c
  c748706240385773f27caba61cbbcbd8  gcc/testsuite/gcc.dg/bitint-15.c
*************** a01e3a82ad637d2bd98e5f55ec051cfe  gcc/te
*** 52063,52069 ****
  f2fd3f66238a769b6b8646a44a1187ac  gcc/testsuite/gcc.dg/bitint-29.c
  ebc1b2e969808b30e5a3b76f4f336d34  gcc/testsuite/gcc.dg/bitint-3.c
  549dedddb5ef6207ce457ce1e4bf8b46  gcc/testsuite/gcc.dg/bitint-30.c
! a3f54a460ab861053aea9b3fea5ea7c3  gcc/testsuite/gcc.dg/bitint-31.c
  49c3bc08813cea383767dedb2d145769  gcc/testsuite/gcc.dg/bitint-32.c
  5d41c4fb8fed8ffa0df8e9e4c2820ffa  gcc/testsuite/gcc.dg/bitint-33.c
  6051db01d14d62e1d01c53c4cefa3485  gcc/testsuite/gcc.dg/bitint-34.c
--- 52110,52116 ----
  f2fd3f66238a769b6b8646a44a1187ac  gcc/testsuite/gcc.dg/bitint-29.c
  ebc1b2e969808b30e5a3b76f4f336d34  gcc/testsuite/gcc.dg/bitint-3.c
  549dedddb5ef6207ce457ce1e4bf8b46  gcc/testsuite/gcc.dg/bitint-30.c
! a86d7fd8a0463f8a27e2774021ede92f  gcc/testsuite/gcc.dg/bitint-31.c
  49c3bc08813cea383767dedb2d145769  gcc/testsuite/gcc.dg/bitint-32.c
  5d41c4fb8fed8ffa0df8e9e4c2820ffa  gcc/testsuite/gcc.dg/bitint-33.c
  6051db01d14d62e1d01c53c4cefa3485  gcc/testsuite/gcc.dg/bitint-34.c
*************** e20f46b6e703ff1284f1cfe79f6c7f15  gcc/te
*** 52138,52144 ****
  727f3fa86769627fd757f9544ec5e9a4  gcc/testsuite/gcc.dg/bitint-97.c
  a22b186996615c2d8eb05ea8bf3fbf0f  gcc/testsuite/gcc.dg/bitint-98.c
  fb2deb63f2c015cb881ba1519e9cf788  gcc/testsuite/gcc.dg/bitint-99.c
! f6b070f438786af36c363a2ba1229aef  gcc/testsuite/gcc.dg/bitintext.h
  6453b594ca416ac818e19554b58e489e  gcc/testsuite/gcc.dg/boolcomplex-1.c
  29dee620c099065fec233358259a8a12  gcc/testsuite/gcc.dg/bss.c
  7cf86654b95ba4af389e830b28a868e1  gcc/testsuite/gcc.dg/builtin-addc-1.c
--- 52185,52191 ----
  727f3fa86769627fd757f9544ec5e9a4  gcc/testsuite/gcc.dg/bitint-97.c
  a22b186996615c2d8eb05ea8bf3fbf0f  gcc/testsuite/gcc.dg/bitint-98.c
  fb2deb63f2c015cb881ba1519e9cf788  gcc/testsuite/gcc.dg/bitint-99.c
! ab8d50e6df5a97f4e1001d5dc01c991d  gcc/testsuite/gcc.dg/bitintext.h
  6453b594ca416ac818e19554b58e489e  gcc/testsuite/gcc.dg/boolcomplex-1.c
  29dee620c099065fec233358259a8a12  gcc/testsuite/gcc.dg/bss.c
  7cf86654b95ba4af389e830b28a868e1  gcc/testsuite/gcc.dg/builtin-addc-1.c
*************** fc7c9c751d59b444d0ab30c4d9029491  gcc/te
*** 56677,56682 ****
--- 56724,56730 ----
  2b41b4e284752d0785412cf47f5b3f6d  gcc/testsuite/gcc.dg/ipa/pr122458.c
  888d33a20f8dcb2d65f085d84f66723e  gcc/testsuite/gcc.dg/ipa/pr123542.c
  187b807400791bf18a7a1f9f9ce8a4a7  gcc/testsuite/gcc.dg/ipa/pr123543.c
+ 72900ba4925dafc06ee62e16c28d6287  gcc/testsuite/gcc.dg/ipa/pr124777.c
  c8295ff7fd7e271d17e7609620f5dfcb  gcc/testsuite/gcc.dg/ipa/pr42706.c
  e4887053c792f4f78b03804c148839ce  gcc/testsuite/gcc.dg/ipa/pr45644.c
  6e1b4f2c5d0c0d768778da8e3b7df828  gcc/testsuite/gcc.dg/ipa/pr48195.c
*************** be052bceddbf752586b645bc9e048e9c  gcc/te
*** 57707,57713 ****
  9b9be0012df81682b4e3d530fd858332  gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc
  5867991ade2460ff758bf1c9acb53ea5  gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.cc
  5ca0a78bc13a9f93219a600bd3f503b5  gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc
! 03b55fa47d8cb58f8a5312a7e01558f2  gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc
  cb4eac35bee8576a953631c035c2ff66  gcc/testsuite/gcc.dg/plugin/copy_from_user-1.c
  47f23deacf7629644591a6e9f024a065  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_Append.c
  77898c598fcadce69594a47533fa5d08  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_New.c
--- 57755,57761 ----
  9b9be0012df81682b4e3d530fd858332  gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc
  5867991ade2460ff758bf1c9acb53ea5  gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.cc
  5ca0a78bc13a9f93219a600bd3f503b5  gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc
! fc075c448c113621c1f33dafad36ea09  gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc
  cb4eac35bee8576a953631c035c2ff66  gcc/testsuite/gcc.dg/plugin/copy_from_user-1.c
  47f23deacf7629644591a6e9f024a065  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_Append.c
  77898c598fcadce69594a47533fa5d08  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_New.c
*************** e91a0d74ecaca2e7119153c437141b86  gcc/te
*** 57798,57804 ****
  d4d1eb70aaafc800a751ded4bc9f9fd6  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.cc
  04b1c27ed8364e0abc5c25eef8f78fc1  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.cc
  75e9c4ca32ac5c1329afb3fd1be6a829  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_nesting.cc
! 47f9a604bf80ed29b8317e210244e4f4  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc
  e307a04d154ca529b2e780215b255dad  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc
  5a7575f0a8605ea8a15a136481b6c505  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.cc
  ac48582404b79145b5d9911649cfbd68  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.cc
--- 57846,57852 ----
  d4d1eb70aaafc800a751ded4bc9f9fd6  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.cc
  04b1c27ed8364e0abc5c25eef8f78fc1  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.cc
  75e9c4ca32ac5c1329afb3fd1be6a829  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_nesting.cc
! 6b5f14156aa7c5541850ec104761ab34  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc
  e307a04d154ca529b2e780215b255dad  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc
  5a7575f0a8605ea8a15a136481b6c505  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.cc
  ac48582404b79145b5d9911649cfbd68  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.cc
*************** f402be89e4891c76c691c8144fe168f7  gcc/te
*** 58627,58632 ****
--- 58675,58681 ----
  f733cdb22a88b058648393623d505a3f  gcc/testsuite/gcc.dg/pr124476.c
  0b8c4e1486bc61b4cdb4efb2e7f08d74  gcc/testsuite/gcc.dg/pr124635.c
  0ced2b8b876682f9fea2fd8e8fc8b6a9  gcc/testsuite/gcc.dg/pr124671.c
+ f85e3805a900aeb94e96e6ea1712a125  gcc/testsuite/gcc.dg/pr124809.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** fa228ee9fbe53472bf0fbc0d82dbf06c  gcc/te
*** 61701,61706 ****
--- 61750,61757 ----
  25ae478f26e4b1f0fbc9427fc6d848a3  gcc/testsuite/gcc.dg/torture/bitint-83.c
  d855a0135427383c84dcb22a8f97fca3  gcc/testsuite/gcc.dg/torture/bitint-84.c
  368a2f51dfadfa4e9fbd0017065b6a83  gcc/testsuite/gcc.dg/torture/bitint-85.c
+ 59d1c089064d05f116226de2d30cb09a  gcc/testsuite/gcc.dg/torture/bitint-86.c
+ c553874b6cbae6539082284b7f4a2bea  gcc/testsuite/gcc.dg/torture/bitint-87.c
  4d03bd57dac0507a44cc15b9afacd8a3  gcc/testsuite/gcc.dg/torture/bitint-9.c
  cf9904d4026e69bddaf745011bbaaab3  gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
  c3c39411545c83e500562780b71883b6  gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
*************** f54649dd921a475b17a284fe02bd4133  gcc/te
*** 62482,62487 ****
--- 62533,62540 ----
  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
+ 16b777622562135656ac0ab96375cfb5  gcc/testsuite/gcc.dg/torture/pr124868.c
+ c2d3ac4b0fce6da2e8aaeaf741803572  gcc/testsuite/gcc.dg/torture/pr124891.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
*************** f4c56a02709c699f81b07b81dd1a2c1e  gcc/te
*** 64888,64893 ****
--- 64941,64947 ----
  73226ac793de9237622d64ee6a7399cc  gcc/testsuite/gcc.dg/tree-ssa/pr122478.c
  de81b2d2951773077a5d5e6d9db8a8e4  gcc/testsuite/gcc.dg/tree-ssa/pr122588-1.c
  ab985bcbd18463ddcc0cb59b8a091e7d  gcc/testsuite/gcc.dg/tree-ssa/pr122629-1.c
+ 71eb14b3ae5faf81c5226dc766d48edd  gcc/testsuite/gcc.dg/tree-ssa/pr122976.c
  fa32f3c662bc31e5bbf4daa360b9c87f  gcc/testsuite/gcc.dg/tree-ssa/pr123372.c
  0054e44a9d7f98f16363e68bc8142e0f  gcc/testsuite/gcc.dg/tree-ssa/pr124746-1.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
*************** efc5db1b97ea06d470c57048d8966ea1  gcc/te
*** 68753,68759 ****
  8d72fe60d77b174c40a9709fbc10c86b  gcc/testsuite/gcc.dg/vect/vect-pr123755.c
  71a5a3f0c2e34ed3e033a36a47f5cf20  gcc/testsuite/gcc.dg/vect/vect-pr123756.c
  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
--- 68807,68813 ----
  8d72fe60d77b174c40a9709fbc10c86b  gcc/testsuite/gcc.dg/vect/vect-pr123755.c
  71a5a3f0c2e34ed3e033a36a47f5cf20  gcc/testsuite/gcc.dg/vect/vect-pr123756.c
  86a15a6fc01f17ec534cc4e8962c430f  gcc/testsuite/gcc.dg/vect/vect-pr123983.c
! bcf507d9ada85546ab41fae1d6c34c2c  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
*************** c5a25189d013bff63967d8ba4395e70f  gcc/te
*** 70611,70626 ****
--- 70665,70684 ----
  e8ccec6b2fb8a30023cf88dcf2548dba  gcc/testsuite/gcc.target/aarch64/cpymem-q-reg_1.c
  8d232ec62529aafba12431c49d0e03d4  gcc/testsuite/gcc.target/aarch64/cpymem-size.c
  f0ade2d7d5ecfdede0bcf4135fdc0398  gcc/testsuite/gcc.target/aarch64/crc-1-pmul.c
+ 16f041e0977d84cf970b45d1212dae98  gcc/testsuite/gcc.target/aarch64/crc-1.c
  bf0bb1609d53652872fb971275ba0031  gcc/testsuite/gcc.target/aarch64/crc-10-pmul.c
  40e8b2336857861ca31d2406a928ad42  gcc/testsuite/gcc.target/aarch64/crc-12-pmul.c
  a41ac1ed74daa11dd949a6028a04e6d9  gcc/testsuite/gcc.target/aarch64/crc-13-pmul.c
  058a51dfd9b715793597020ad0ac455b  gcc/testsuite/gcc.target/aarch64/crc-14-pmul.c
  2ff1b58a8561d535a8d45eaf5f22e92a  gcc/testsuite/gcc.target/aarch64/crc-17-pmul.c
  9372df20a81f71614d20f840944a0148  gcc/testsuite/gcc.target/aarch64/crc-18-pmul.c
+ 8df746cffc9d4647e7289a491fefbabf  gcc/testsuite/gcc.target/aarch64/crc-2.c
  84bca1420829aedf17db57cedd2deaac  gcc/testsuite/gcc.target/aarch64/crc-21-pmul.c
  3efd33ff4b2e6b2cda3ea2d843ec3d48  gcc/testsuite/gcc.target/aarch64/crc-22-pmul.c
  0b8757c41f816dcdbd655c8ef3f11416  gcc/testsuite/gcc.target/aarch64/crc-23-pmul.c
+ e64b445f3de5c32ef9fe6dabc536caaf  gcc/testsuite/gcc.target/aarch64/crc-3.c
  e9b2f2c412037d1ed54a8e6f2c8a2106  gcc/testsuite/gcc.target/aarch64/crc-4-pmul.c
+ 9a34e996498825327ef6f4346f4aab8e  gcc/testsuite/gcc.target/aarch64/crc-4.c
  336da770a6971a3a5734a42cb9b2383e  gcc/testsuite/gcc.target/aarch64/crc-5-pmul.c
  70c833cafde9cb10fb9c73183403a39d  gcc/testsuite/gcc.target/aarch64/crc-6-pmul.c
  95fe77a618d46d043b3fcc6cc56e6f43  gcc/testsuite/gcc.target/aarch64/crc-7-pmul.c
*************** e7fc7805aef84cb0a2c8d05886a042ca  gcc/te
*** 71110,71115 ****
--- 71168,71180 ----
  d5401b1ca800e0142c1b5d16be3ddc57  gcc/testsuite/gcc.target/aarch64/mvc-warning1.c
  3151dfcfde3b7d6684635da1ef1cd34b  gcc/testsuite/gcc.target/aarch64/mvn-cmeq0-1.c
  0da02c92f522f70dac5f559b786a6a5b  gcc/testsuite/gcc.target/aarch64/mvn_zero_ext.c
+ ff3ad9c45c4dfa0d8fa4b74eb89ddf3b  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-1.c
+ 7862a768e306a4dfa50081701e7c460f  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-2.c
+ c0921723f41125298bfcb2f99d6e1a7e  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-3.c
+ 9e4f226b3c0763fa681794f0b712e9c2  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-4.c
+ 47b39e9eb26f2b282f0147230216746d  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-5.c
+ bb109097afac3e13d316d2b02cb19eb1  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-6.c
+ 5fcabd9028a5065372e7966d013aa9c3  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-7.c
  18b4be822d23c74967c07303bd28f766  gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c
  c62a8a637de4eb00aef16c6f2aa34f7e  gcc/testsuite/gcc.target/aarch64/narrow_high_combine.c
  3e63ffed4a3fdf8f59d1d0a5a648365c  gcc/testsuite/gcc.target/aarch64/narrow_zero_high_half.c
*************** ec79fa3be7327c757d4abcecfe6afb40  gcc/te
*** 71351,71357 ****
  b15614b849a2403ba76800ef1356aab5  gcc/testsuite/gcc.target/aarch64/pr123026.c
  c07ef6a79a7748d8a1cd83670cbc3173  gcc/testsuite/gcc.target/aarch64/pr123094-1.c
  98a4eb67a4078cb117ea1c80d44fee14  gcc/testsuite/gcc.target/aarch64/pr123206.c
! 690007a5731084ed37c67371897e730b  gcc/testsuite/gcc.target/aarch64/pr123238.c
  95306727ea8db0e2fdb8e199f754c587  gcc/testsuite/gcc.target/aarch64/pr123285-1.c
  3525a5777032197cdd1e39b2aad94c29  gcc/testsuite/gcc.target/aarch64/pr123294-1.c
  085f7e2087fb0cf8d5d9a44259bb616c  gcc/testsuite/gcc.target/aarch64/pr123548.c
--- 71416,71422 ----
  b15614b849a2403ba76800ef1356aab5  gcc/testsuite/gcc.target/aarch64/pr123026.c
  c07ef6a79a7748d8a1cd83670cbc3173  gcc/testsuite/gcc.target/aarch64/pr123094-1.c
  98a4eb67a4078cb117ea1c80d44fee14  gcc/testsuite/gcc.target/aarch64/pr123206.c
! f278ce8788e95ff6c4d2d30e0e50237e  gcc/testsuite/gcc.target/aarch64/pr123238.c
  95306727ea8db0e2fdb8e199f754c587  gcc/testsuite/gcc.target/aarch64/pr123285-1.c
  3525a5777032197cdd1e39b2aad94c29  gcc/testsuite/gcc.target/aarch64/pr123294-1.c
  085f7e2087fb0cf8d5d9a44259bb616c  gcc/testsuite/gcc.target/aarch64/pr123548.c
*************** dc551677ea18cee7d0d0f71db2863e0d  gcc/te
*** 74773,74779 ****
  0f9c8d5e0f81558e6102d96bad4748d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u32.c
  535a96b316a99f9dbd785cc445aa108c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u64.c
  026e0c233a396156cf9d7b5accb1b5f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u8.c
! 7fc5ef3b60c23ffd57144092a4c21a3d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
  e1d55b697dd3f26b83e09349fa9bd50a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f16.c
  023102988d91e8649e76b3f619a0fe14  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f32.c
  42edd7f70c6dd83aed2e1e8f2822d1b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f64.c
--- 74838,74844 ----
  0f9c8d5e0f81558e6102d96bad4748d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u32.c
  535a96b316a99f9dbd785cc445aa108c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u64.c
  026e0c233a396156cf9d7b5accb1b5f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u8.c
! fe0e1c95eaba0c19ac0dd670a18e9c53  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
  e1d55b697dd3f26b83e09349fa9bd50a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f16.c
  023102988d91e8649e76b3f619a0fe14  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f32.c
  42edd7f70c6dd83aed2e1e8f2822d1b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f64.c
*************** aa168ab73051b82a62ea3739df9b7948  gcc/te
*** 79568,79574 ****
  4628a42c2e310a954f19233c1d879c44  gcc/testsuite/gcc.target/arm/mtp_2.c
  3b7858b6609587453b138fe196229f01  gcc/testsuite/gcc.target/arm/mtp_3.c
  dd181d86d78e4af9dc8a97924e0e82c1  gcc/testsuite/gcc.target/arm/mtp_4.c
! f79547cf33a411326ec02a8dc89d5e7d  gcc/testsuite/gcc.target/arm/multilib.exp
  1c6df99c167e122c3ce87f610c408a1e  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-1.c
  77d3814c02278cb525be3b9b8ff07d7a  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-2.c
  781e32b800a7d858cc670f788ea1fac3  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-3.c
--- 79633,79639 ----
  4628a42c2e310a954f19233c1d879c44  gcc/testsuite/gcc.target/arm/mtp_2.c
  3b7858b6609587453b138fe196229f01  gcc/testsuite/gcc.target/arm/mtp_3.c
  dd181d86d78e4af9dc8a97924e0e82c1  gcc/testsuite/gcc.target/arm/mtp_4.c
! 245115ae7c12633599d874a25657d9cb  gcc/testsuite/gcc.target/arm/multilib.exp
  1c6df99c167e122c3ce87f610c408a1e  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-1.c
  77d3814c02278cb525be3b9b8ff07d7a  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-2.c
  781e32b800a7d858cc670f788ea1fac3  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-3.c
*************** a10a2300e50d1345807af584a2601db4  gcc/te
*** 84089,84094 ****
--- 84154,84160 ----
  fcf6ebcd2d266f7ad2c63665e05f9315  gcc/testsuite/gcc.target/i386/apx-ppx-1.c
  83cfbdd6adce9415b1a93deae7f63899  gcc/testsuite/gcc.target/i386/apx-ppx-2.c
  776a59a1e552c7cfc19cf5d797851ca4  gcc/testsuite/gcc.target/i386/apx-ppx-3.c
+ d8e5e32378321997699dcc76d26eae5e  gcc/testsuite/gcc.target/i386/apx-pr124892.c
  b76efc502226ffd2eed7d56bb5ac974a  gcc/testsuite/gcc.target/i386/apx-push2pop2-1.c
  ba815e440bcd2af0a357a066d6a64dbf  gcc/testsuite/gcc.target/i386/apx-push2pop2-2.c
  09b6d63033c67dd3b806c7c28d691ec9  gcc/testsuite/gcc.target/i386/apx-push2pop2_force_drap-1.c
*************** dede77ce3cdb201804de164c3fa75a23  gcc/te
*** 90371,90377 ****
--- 90437,90448 ----
  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
+ 2ff14347296d11b5e3b328e3957e5191  gcc/testsuite/gcc.target/i386/pr124710-1.c
+ 79c874a97f648ff278ec1765414620b1  gcc/testsuite/gcc.target/i386/pr124710-2.c
  2b6a1448e119f38191ae1fc1974e8033  gcc/testsuite/gcc.target/i386/pr124759.c
+ 317da1bafce144f5671a08a96200b001  gcc/testsuite/gcc.target/i386/pr124877-1.c
+ ffc68fd0ff2ba113062cd86cae484d7d  gcc/testsuite/gcc.target/i386/pr124877-2.c
+ f06caa7312f1bda837e182ee5d6c518e  gcc/testsuite/gcc.target/i386/pr124877-3.c
  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
*************** adae3156ab4e2f317ef6a23cbd52a09e  gcc/te
*** 91886,91892 ****
  4675458af6efdc7039a76f2ca0824f6a  gcc/testsuite/gcc.target/i386/pr89984-2.c
  0fde4fbe7c3ef420d3178fba128d51e7  gcc/testsuite/gcc.target/i386/pr90007.c
  a7e4330876ef271143c6421ba5f2cf85  gcc/testsuite/gcc.target/i386/pr90096.c
! 289aed1294f4bdce79570370d9b37d36  gcc/testsuite/gcc.target/i386/pr90178.c
  c04294701860868605e6d4177d1f5a28  gcc/testsuite/gcc.target/i386/pr90193.c
  7201d75d66d22da420434866d606904c  gcc/testsuite/gcc.target/i386/pr90356.c
  858d458d8346caaedca9450697386549  gcc/testsuite/gcc.target/i386/pr90358.c
--- 91957,91963 ----
  4675458af6efdc7039a76f2ca0824f6a  gcc/testsuite/gcc.target/i386/pr89984-2.c
  0fde4fbe7c3ef420d3178fba128d51e7  gcc/testsuite/gcc.target/i386/pr90007.c
  a7e4330876ef271143c6421ba5f2cf85  gcc/testsuite/gcc.target/i386/pr90096.c
! 03727d78154d7afb6c2b92042103043a  gcc/testsuite/gcc.target/i386/pr90178.c
  c04294701860868605e6d4177d1f5a28  gcc/testsuite/gcc.target/i386/pr90193.c
  7201d75d66d22da420434866d606904c  gcc/testsuite/gcc.target/i386/pr90356.c
  858d458d8346caaedca9450697386549  gcc/testsuite/gcc.target/i386/pr90358.c
*************** d313cc77f313c4dd63cd510957fdd87c  gcc/te
*** 93543,93549 ****
  04745ab7394d1702daa975607c216973  gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c
  c8dd24e1b18af774be1f6fa045252612  gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c
  2e396378f3ddbd9c2d4a3a214f00eeda  gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c
! 844ff919190ce8569bfc0a5820c77ff5  gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
  edede09b1afb458f310c448a3a2ffa14  gcc/testsuite/gcc.target/i386/zero-scratch-regs-24.c
  a7c92b064cd3dfa35552d030d9c88443  gcc/testsuite/gcc.target/i386/zero-scratch-regs-25.c
  ec39e4f7e99d99e583f0ad35694883c0  gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c
--- 93614,93620 ----
  04745ab7394d1702daa975607c216973  gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c
  c8dd24e1b18af774be1f6fa045252612  gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c
  2e396378f3ddbd9c2d4a3a214f00eeda  gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c
! 96e58fb14a56bdee8017b21ceb0c5f18  gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
  edede09b1afb458f310c448a3a2ffa14  gcc/testsuite/gcc.target/i386/zero-scratch-regs-24.c
  a7c92b064cd3dfa35552d030d9c88443  gcc/testsuite/gcc.target/i386/zero-scratch-regs-25.c
  ec39e4f7e99d99e583f0ad35694883c0  gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c
*************** a0db901c2d58c6ec7373c71e5e9f5f96  gcc/te
*** 93554,93559 ****
--- 93625,93631 ----
  bc37db967928436168b8c1061133369a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-30.c
  436c4c4db448d2a78bd0a4ff74e64d3a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c
  66378b9cfd36021151804e3b9acaa10c  gcc/testsuite/gcc.target/i386/zero-scratch-regs-32.c
+ a802b4b3fcbb11b953e3a919e483099b  gcc/testsuite/gcc.target/i386/zero-scratch-regs-33.c
  eadfc0a02336a6e52dffc2fcf8dfcf59  gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c
  66756a81f305b4e4d2c8a4d048f9a6ab  gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c
  1c155a5b2fa12b705e2c04f01342749d  gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c
*************** bce9fa2c6f1e56b2fc1016479a2343a7  gcc/te
*** 94453,94458 ****
--- 94525,94531 ----
  5b2981de420be71c356c495dfca11de9  gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c
  a816dff6f0a70651b4a2baba36df01bf  gcc/testsuite/gcc.target/microblaze/isa/nofloat.c
  7bd8c4012b4e818f846d60047de3d957  gcc/testsuite/gcc.target/microblaze/isa/pcmp.c
+ f45b5b3a93982c8808b97cea207f6871  gcc/testsuite/gcc.target/microblaze/isa/pr103383.c
  215c22e1a44b562b1792467518f5da2c  gcc/testsuite/gcc.target/microblaze/isa/vanilla.c
  bf545e76a6a180ba7357b95b798e52e2  gcc/testsuite/gcc.target/microblaze/microblaze.exp
  9a329728496d062effbbdf4b7bde3f00  gcc/testsuite/gcc.target/microblaze/others/break_handler.c
*************** b788c9e8d1135a67edff7bce9e2bb1cc  gcc/te
*** 95350,95356 ****
  dd4a33d1caf27318327d409066e8853f  gcc/testsuite/gcc.target/nvptx/march-map=sm_32.c
  5798d9a88b03b302b4376ddc99c38963  gcc/testsuite/gcc.target/nvptx/march-map=sm_35.c
  62c281a2a6cc10296e25c1f8809314bd  gcc/testsuite/gcc.target/nvptx/march-map=sm_37.c
! 3816d6a3a495f53a2bad3633fd7de4f4  gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c
  a378f672c1826c23c1560c1af3c74cde  gcc/testsuite/gcc.target/nvptx/march-map=sm_52.c
  0ab192ba0546c180702780a3ba66044b  gcc/testsuite/gcc.target/nvptx/march-map=sm_53.c
  9e08e53476d54bf63a1c5ca677191ea9  gcc/testsuite/gcc.target/nvptx/march-map=sm_60.c
--- 95423,95429 ----
  dd4a33d1caf27318327d409066e8853f  gcc/testsuite/gcc.target/nvptx/march-map=sm_32.c
  5798d9a88b03b302b4376ddc99c38963  gcc/testsuite/gcc.target/nvptx/march-map=sm_35.c
  62c281a2a6cc10296e25c1f8809314bd  gcc/testsuite/gcc.target/nvptx/march-map=sm_37.c
! a71e1b4b73e57f09c05d7c76660560bb  gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c
  a378f672c1826c23c1560c1af3c74cde  gcc/testsuite/gcc.target/nvptx/march-map=sm_52.c
  0ab192ba0546c180702780a3ba66044b  gcc/testsuite/gcc.target/nvptx/march-map=sm_53.c
  9e08e53476d54bf63a1c5ca677191ea9  gcc/testsuite/gcc.target/nvptx/march-map=sm_60.c
*************** d5dff4229bf2002ee105ec2e9c8ca63b  gcc/te
*** 95368,95373 ****
--- 95441,95447 ----
  243a0359cbd19fcd7a23ac9c9b3ef310  gcc/testsuite/gcc.target/nvptx/march=sm_30.c
  8f86891a6ef70d5489c389f237d6e479  gcc/testsuite/gcc.target/nvptx/march=sm_35.c
  b5d58d84e57c5cfe9d7ce93a40665b7e  gcc/testsuite/gcc.target/nvptx/march=sm_37.c
+ f5450d939a5355c2d4d5955b25515b66  gcc/testsuite/gcc.target/nvptx/march=sm_50.c
  cb9d8e8835055f77639301fe42459f14  gcc/testsuite/gcc.target/nvptx/march=sm_52.c
  0601021f45410aa7fa56ed7ea27904ff  gcc/testsuite/gcc.target/nvptx/march=sm_53.c
  a1d50cdd7bd07553ee378e39a75aa675  gcc/testsuite/gcc.target/nvptx/march=sm_61.c
*************** ea7e7665df27eebcf186519e2077269b  gcc/te
*** 95376,95381 ****
--- 95450,95456 ----
  ef504f274b79cad064bc5f0eab4dccbe  gcc/testsuite/gcc.target/nvptx/march=sm_80.c
  afd0dac0c935c0eb1fb80b9fae2b1c4e  gcc/testsuite/gcc.target/nvptx/march=sm_89.c
  3acbb14b9172e6aa7e2fafacc82dd835  gcc/testsuite/gcc.target/nvptx/mptx=3.1.c
+ edc5c701526f0efdc17f8b00d54da4a4  gcc/testsuite/gcc.target/nvptx/mptx=4.0.c
  9ea9acf5f9e1658066ce2f6c50b8b163  gcc/testsuite/gcc.target/nvptx/mptx=4.1.c
  a5dde36e4466d98be79cade6931a198c  gcc/testsuite/gcc.target/nvptx/mptx=4.2.c
  0eb02595b9f938776de42a71f317c938  gcc/testsuite/gcc.target/nvptx/mptx=5.0.c
*************** bb8948b99ee40edd60fac5552a29094b  gcc/te
*** 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
--- 95615,95620 ----
*************** f270d380aa68ee40ee568c5490d0f454  gcc/te
*** 107245,107250 ****
--- 107319,107325 ----
  5aadd05334dd3bcbd6d1ecf04ebb243d  gcc/testsuite/gdc.dg/attr_exclusions2.d
  5f49845b5fe778c43e9dcaa88e4c416d  gcc/testsuite/gdc.dg/attr_flatten1.d
  68b05459d20c0226090a3e38852d2a9b  gcc/testsuite/gdc.dg/attr_module.d
+ ae06f042026e4016c822ff150f7296ed  gcc/testsuite/gdc.dg/attr_no_split_stack.d
  2c20bba384ddb9d4109200b5c5907057  gcc/testsuite/gdc.dg/attr_noclone1.d
  4531c8abdd2325c664ae527ddc223c42  gcc/testsuite/gdc.dg/attr_noicf1.d
  5d5f56373cf77cbdaea3672f40a3de75  gcc/testsuite/gdc.dg/attr_noinline1.d
*************** a45efe7a1d6f8b7f15f7befa3e7b1768  gcc/te
*** 107446,107451 ****
--- 107521,107527 ----
  4e7020df6ad139d4b43104ca5b97d142  gcc/testsuite/gdc.dg/pr123419.d
  56c2a0939424aafd465f15ffdd08847b  gcc/testsuite/gdc.dg/pr123798.d
  dd315fdb117d70623ce6b07b3cb8adda  gcc/testsuite/gdc.dg/pr123995.d
+ 902fe3e7f279d73fc960a4f4cd198bc1  gcc/testsuite/gdc.dg/pr124922.d
  d32aa8ed5ea10931be4ddb5bb9e863d8  gcc/testsuite/gdc.dg/pr89017.d
  53fa8db94d4ca3fc9ba83769733dc0e7  gcc/testsuite/gdc.dg/pr89041.d
  6c316b13f71ea31fcada56b58a41ebd1  gcc/testsuite/gdc.dg/pr89042a.d
*************** a9244fe6f2b8ede1fa5bec2486685adc  gcc/te
*** 108722,108727 ****
--- 108798,108804 ----
  bc7975fb011749a023500cb1a40cae84  gcc/testsuite/gdc.test/compilable/test21831.d
  7523071ea2543e26e45e5bf23bdd52cc  gcc/testsuite/gdc.test/compilable/test21832.d
  1f3a3d73257c7b3480bd26d4d5758810  gcc/testsuite/gdc.test/compilable/test21835.d
+ 752dfbc27e23079d0769be5f2834339f  gcc/testsuite/gdc.test/compilable/test21839.d
  6f5f3be0b3b35cb77d6cade261792f9d  gcc/testsuite/gdc.test/compilable/test21850.d
  031f91ebad1f7a90775adfbea13c93e7  gcc/testsuite/gdc.test/compilable/test21861.d
  9d6857891098eee0f95c918781d462a2  gcc/testsuite/gdc.test/compilable/test21876.d
*************** a87be655c4091663d3c237215652472b  gcc/te
*** 108920,108926 ****
  eaba2f9e0498b9ed178c566dafb0fdb6  gcc/testsuite/gdc.test/compilable/test8631.d
  08bb23688c8e4ed3cfff98aaf0746861  gcc/testsuite/gdc.test/compilable/test8675.d
  d05922c2aef84723761f8fb16e36080c  gcc/testsuite/gdc.test/compilable/test8696.d
! 9ec77bfd4d36feaf576dfdad323c5edd  gcc/testsuite/gdc.test/compilable/test8717.d
  c798616b54ddda7a7bf8ea476c6eb3b1  gcc/testsuite/gdc.test/compilable/test8802.d
  e532a2b8c5e6c299df90ad9c90a77d72  gcc/testsuite/gdc.test/compilable/test8898.d
  29ce48087b649b50daa3ab302b6764a1  gcc/testsuite/gdc.test/compilable/test8922a.d
--- 108997,109003 ----
  eaba2f9e0498b9ed178c566dafb0fdb6  gcc/testsuite/gdc.test/compilable/test8631.d
  08bb23688c8e4ed3cfff98aaf0746861  gcc/testsuite/gdc.test/compilable/test8675.d
  d05922c2aef84723761f8fb16e36080c  gcc/testsuite/gdc.test/compilable/test8696.d
! 5399625960cb218158ff315698899187  gcc/testsuite/gdc.test/compilable/test8717.d
  c798616b54ddda7a7bf8ea476c6eb3b1  gcc/testsuite/gdc.test/compilable/test8802.d
  e532a2b8c5e6c299df90ad9c90a77d72  gcc/testsuite/gdc.test/compilable/test8898.d
  29ce48087b649b50daa3ab302b6764a1  gcc/testsuite/gdc.test/compilable/test8922a.d
*************** b3ebff7152b0f06071ba88e3656e95e4  gcc/te
*** 109152,109158 ****
  dd45182458a38798c019f84bfd252373  gcc/testsuite/gdc.test/fail_compilation/diag10415.d
  1b5e8da546ae6c6b10920988d411edb2  gcc/testsuite/gdc.test/fail_compilation/diag10688.d
  3325c9050495bdf5823b3250f244d278  gcc/testsuite/gdc.test/fail_compilation/diag10768.d
! 385a50670d70680f814de8492f6c3440  gcc/testsuite/gdc.test/fail_compilation/diag10783.d
  9435511e2251f51140243460475ba28b  gcc/testsuite/gdc.test/fail_compilation/diag10792.d
  29ca6c80d3d81d3547800e40caef32f1  gcc/testsuite/gdc.test/fail_compilation/diag10805.d
  af1ef4e6b4bea31048da901e6e7ef3ec  gcc/testsuite/gdc.test/fail_compilation/diag10862.d
--- 109229,109235 ----
  dd45182458a38798c019f84bfd252373  gcc/testsuite/gdc.test/fail_compilation/diag10415.d
  1b5e8da546ae6c6b10920988d411edb2  gcc/testsuite/gdc.test/fail_compilation/diag10688.d
  3325c9050495bdf5823b3250f244d278  gcc/testsuite/gdc.test/fail_compilation/diag10768.d
! 3c0488568b6c7307839d8d9427c11bab  gcc/testsuite/gdc.test/fail_compilation/diag10783.d
  9435511e2251f51140243460475ba28b  gcc/testsuite/gdc.test/fail_compilation/diag10792.d
  29ca6c80d3d81d3547800e40caef32f1  gcc/testsuite/gdc.test/fail_compilation/diag10805.d
  af1ef4e6b4bea31048da901e6e7ef3ec  gcc/testsuite/gdc.test/fail_compilation/diag10862.d
*************** e9a684b92a19f3209b93cfa703068084  gcc/te
*** 109286,109292 ****
  87826ac2f6bbb76e4f3765ad1364c54d  gcc/testsuite/gdc.test/fail_compilation/diag9250.d
  e5728c06dedf56eb3929dbbabbe45550  gcc/testsuite/gdc.test/fail_compilation/diag9312.d
  b28a3eecd7c36ded5aca587073cebd78  gcc/testsuite/gdc.test/fail_compilation/diag9357.d
! e79225b5e67e900ce187e333f87cf6dd  gcc/testsuite/gdc.test/fail_compilation/diag9358.d
  b7b293d85267d1066cc299d96cd9f665  gcc/testsuite/gdc.test/fail_compilation/diag9398.d
  6eb53adfe26eb5bbba0a5c917ad178cb  gcc/testsuite/gdc.test/fail_compilation/diag9420.d
  f4fc4015b440555b99731b7d356b9507  gcc/testsuite/gdc.test/fail_compilation/diag9451.d
--- 109363,109369 ----
  87826ac2f6bbb76e4f3765ad1364c54d  gcc/testsuite/gdc.test/fail_compilation/diag9250.d
  e5728c06dedf56eb3929dbbabbe45550  gcc/testsuite/gdc.test/fail_compilation/diag9312.d
  b28a3eecd7c36ded5aca587073cebd78  gcc/testsuite/gdc.test/fail_compilation/diag9357.d
! 0c493e6dab74d0a8cdfb6036ba8e4d6b  gcc/testsuite/gdc.test/fail_compilation/diag9358.d
  b7b293d85267d1066cc299d96cd9f665  gcc/testsuite/gdc.test/fail_compilation/diag9398.d
  6eb53adfe26eb5bbba0a5c917ad178cb  gcc/testsuite/gdc.test/fail_compilation/diag9420.d
  f4fc4015b440555b99731b7d356b9507  gcc/testsuite/gdc.test/fail_compilation/diag9451.d
*************** a3b880eeeee3718d39ad9eea41a126bd  gcc/te
*** 109724,109729 ****
--- 109801,109807 ----
  1474f9e478cfabdf9cfb8fbb2cd67ac7  gcc/testsuite/gdc.test/fail_compilation/fail22857.d
  d66caeff2039e96ff6d7fabe194052e5  gcc/testsuite/gdc.test/fail_compilation/fail22881.d
  3ae4abd2e5f005a36efb80d18fa58cc6  gcc/testsuite/gdc.test/fail_compilation/fail229.d
+ c72f9b1f909a882301ee44c6e1e30a54  gcc/testsuite/gdc.test/fail_compilation/fail22925.d
  b870fb01a2c3232f3cff62cc0b90ac88  gcc/testsuite/gdc.test/fail_compilation/fail23.d
  048e20a40216cbded5b201acc227180b  gcc/testsuite/gdc.test/fail_compilation/fail231.d
  3ee0844b26847d9399784b8860d279d8  gcc/testsuite/gdc.test/fail_compilation/fail23108a.d
*************** da54a1d44613ea21dc18df6ca44291ca  gcc/te
*** 110614,110620 ****
  b0deda56d15b9fb7160c198b0d3ea6d3  gcc/testsuite/gdc.test/fail_compilation/spell9644.d
  45b7a1ba17937ba4218ee6ce5c82ca8e  gcc/testsuite/gdc.test/fail_compilation/standalone_modctor.d
  ee8f9109e4f16647564a5f23966887c9  gcc/testsuite/gdc.test/fail_compilation/static_import.d
! 0ab7d22996253405b8ebc8febe8e88f3  gcc/testsuite/gdc.test/fail_compilation/staticarray.d
  f1c05d19b803c02f093c899d5610d06f  gcc/testsuite/gdc.test/fail_compilation/staticarrayoverflow.d
  a1372564d7940c2189994c262c4011f9  gcc/testsuite/gdc.test/fail_compilation/staticassert_sema1.d
  90ac7d4678db81f3059a28545e140e33  gcc/testsuite/gdc.test/fail_compilation/staticassertargs.d
--- 110692,110698 ----
  b0deda56d15b9fb7160c198b0d3ea6d3  gcc/testsuite/gdc.test/fail_compilation/spell9644.d
  45b7a1ba17937ba4218ee6ce5c82ca8e  gcc/testsuite/gdc.test/fail_compilation/standalone_modctor.d
  ee8f9109e4f16647564a5f23966887c9  gcc/testsuite/gdc.test/fail_compilation/static_import.d
! a33f48109ca196bead768979f69b90b6  gcc/testsuite/gdc.test/fail_compilation/staticarray.d
  f1c05d19b803c02f093c899d5610d06f  gcc/testsuite/gdc.test/fail_compilation/staticarrayoverflow.d
  a1372564d7940c2189994c262c4011f9  gcc/testsuite/gdc.test/fail_compilation/staticassert_sema1.d
  90ac7d4678db81f3059a28545e140e33  gcc/testsuite/gdc.test/fail_compilation/staticassertargs.d
*************** ecb9231d4edfa2cfdfff943a0477ba69  gcc/te
*** 110861,110867 ****
  bcac533ebb44ae410d3412ec01289528  gcc/testsuite/gdc.test/fail_compilation/testInference.d
  ffb3215e9a258cfd3f1a5da05897df96  gcc/testsuite/gdc.test/fail_compilation/testOpApply.d
  1b2c2148feb5b903828cb6ff9abf8e29  gcc/testsuite/gdc.test/fail_compilation/test_isOverlapped_errors.d
! 585cd3369b1d02b241f3a50fd0738734  gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
  d85dc340f8e1ad482cf7f4ec2320a01f  gcc/testsuite/gdc.test/fail_compilation/testrvaluecpctor.d
  9f45e8c9c9f3a0129841f68bfdab000d  gcc/testsuite/gdc.test/fail_compilation/testscopestatic.d
  a19751c69fd3a108ac390db97edce978  gcc/testsuite/gdc.test/fail_compilation/testsemi.d
--- 110939,110945 ----
  bcac533ebb44ae410d3412ec01289528  gcc/testsuite/gdc.test/fail_compilation/testInference.d
  ffb3215e9a258cfd3f1a5da05897df96  gcc/testsuite/gdc.test/fail_compilation/testOpApply.d
  1b2c2148feb5b903828cb6ff9abf8e29  gcc/testsuite/gdc.test/fail_compilation/test_isOverlapped_errors.d
! 6bed13e8122cf47cf74d7799d64afe03  gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
  d85dc340f8e1ad482cf7f4ec2320a01f  gcc/testsuite/gdc.test/fail_compilation/testrvaluecpctor.d
  9f45e8c9c9f3a0129841f68bfdab000d  gcc/testsuite/gdc.test/fail_compilation/testscopestatic.d
  a19751c69fd3a108ac390db97edce978  gcc/testsuite/gdc.test/fail_compilation/testsemi.d
*************** dee6967c044d8780d274607ace40fce8  gcc/te
*** 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
--- 114139,114145 ----
  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
! bd92eee4a8e719086355949bd9fba572  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
*************** cdbe16382c20ff02d5be2370ef235ffd  gcc/te
*** 115054,115060 ****
--- 115132,115143 ----
  1a47a5d775b89e7ea35bb88b047004a6  gcc/testsuite/gfortran.dg/goacc-gomp/free-1.f90
  f1a8713ca7f4d3cd72ae8a412f19527f  gcc/testsuite/gfortran.dg/goacc-gomp/goacc-gomp.exp
  66b451ac1ef6dc37e41acf5ef7d3a7f8  gcc/testsuite/gfortran.dg/goacc-gomp/mixed-1.f
+ dcb62a65f464c0c26b4f75641f80a92d  gcc/testsuite/gfortran.dg/goacc-gomp/nesting-fail-1.f95
  f062d49184fa5ca95a859017d0ac7c8d  gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-1.f90
+ 48ca8116986d11118ccd5f91de23860e  gcc/testsuite/gfortran.dg/goacc-gomp/pr108382.f90
+ a6770caefb05f127ef2000ee00ed4d83  gcc/testsuite/gfortran.dg/goacc-gomp/pr63858.f
+ 1df11935775af1f0859dfd7fbb101022  gcc/testsuite/gfortran.dg/goacc-gomp/pr93329.f90
+ 4beebc6402fc920e7e48f720eb42638c  gcc/testsuite/gfortran.dg/goacc-gomp/pr93463.f90
  ca804f2df22c482ff1ff6d8e4e966c95  gcc/testsuite/gfortran.dg/goacc/acc-wait-1.f90
  623dd259c1089424ad39ce48ecf7872f  gcc/testsuite/gfortran.dg/goacc/acc_on_device-1.f95
  1bb13022cfc4df10f7b288df9b2ceaa7  gcc/testsuite/gfortran.dg/goacc/acc_on_device-2-off.f95
*************** dc0ed8100589e01d391b4954bad7b048  gcc/te
*** 115194,115202 ****
  983431ce9a90b70a112b9e156506033e  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-serial.f90
  36c28e9cc17a4b18de9957b99e3ae3d1  gcc/testsuite/gfortran.dg/goacc/nesting-fail-1.f95
  f8fe06410fd4ca50e585e681d35f4482  gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90
- 8f7b26e930f121be0c4ee68193d7adf3  gcc/testsuite/gfortran.dg/goacc/omp-108382.f90
- 44c6212e07bf6b44bd6d26e3224f93d7  gcc/testsuite/gfortran.dg/goacc/omp-fixed.f
- 0d004a9c292993dcae37ce3958b7e212  gcc/testsuite/gfortran.dg/goacc/omp.f95
  30617b4201e681ce9fc02f97597b907d  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-1.f90
  c7ee12dc94b4a8a26a060f569b0b87af  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-2.f90
  bb8ae92b32e3f26a7ac46460dcb0eaaa  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-3.f90
--- 115277,115282 ----
*************** fff3ef606b07a0c12c2323afa6fe446d  gcc/te
*** 115226,115233 ****
  8b11b5d3280af265110281a0a77e18f9  gcc/testsuite/gfortran.dg/goacc/pr85879.f90
  1e6397cc1e2bf821ff497ca3cb5b4aa3  gcc/testsuite/gfortran.dg/goacc/pr89773.f90
  3560a9d0030a3f7e3afe0047fa5f072e  gcc/testsuite/gfortran.dg/goacc/pr92793-1.f90
- d4ec9e424a21673404e2e7df3d1701c5  gcc/testsuite/gfortran.dg/goacc/pr93329.f90
- 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
--- 115306,115311 ----
*************** c4c86973cf0938ea1456949849582a2a  gcc/te
*** 115705,115710 ****
--- 115783,115790 ----
  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
+ 390de4d65a27e4b7a8643dbffb713189  gcc/testsuite/gfortran.dg/gomp/pr101760.f90
+ 8b20a4cfa3b2f8bd56fdd2e034a5a32a  gcc/testsuite/gfortran.dg/gomp/pr102314.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
*************** cfe18507090c53ee49ce6c7099f5be98  gcc/te
*** 119512,119517 ****
--- 119592,119598 ----
  90560dd43afb04df0d4436add6187afd  gcc/testsuite/gfortran.dg/spread_init_expr.f03
  9739831622df43894c7628df7fbfdbe7  gcc/testsuite/gfortran.dg/spread_init_expr_2.f90
  4d184b91375f44c5b92a49fa87c9a38e  gcc/testsuite/gfortran.dg/spread_scalar_source.f90
+ cbcb6c80dd99e8b1762d2e2825690464  gcc/testsuite/gfortran.dg/spread_scalar_zerosize.f90
  1d00f5b498cd877e60af5bf7a6780831  gcc/testsuite/gfortran.dg/spread_shape_1.f90
  066e3aa75ad023aada1229f37bfa9c17  gcc/testsuite/gfortran.dg/spread_simplify_1.f90
  4a6636fb35b05d54b152a2bb04221e10  gcc/testsuite/gfortran.dg/spread_size_limit.f90
*************** e011dc8b55ca1eab0785cef2ccdbf70e  gcc/te
*** 121572,121582 ****
--- 121653,121669 ----
  e065a11aad8d3334009e6bf5cc07d763  gcc/testsuite/gm2/iso/run/pass/onebyte2.mod
  fb11b2a9365b1717ae526deb38c41220  gcc/testsuite/gm2/iso/run/pass/onebyte3.mod
  ed15b32cac5558baf070bf13e20fb6ab  gcc/testsuite/gm2/iso/run/pass/packed.mod
+ d2643e6b68b9b2cd7f0a6d1aa9eafac0  gcc/testsuite/gm2/iso/run/pass/printsize.mod
  a392f2b779747b49f3bf8c1425b4f578  gcc/testsuite/gm2/iso/run/pass/proc.c
  ae1b3c93233365bbbcb2f5542962646a  gcc/testsuite/gm2/iso/run/pass/proc.mod
  63a34382ce27483885e44450151679a1  gcc/testsuite/gm2/iso/run/pass/proc2.mod
  f6b96df9f159dc0f5652d5f7f45aceb4  gcc/testsuite/gm2/iso/run/pass/proc_test.mod
  0e331f85f9cbbd156ac97565d33fda86  gcc/testsuite/gm2/iso/run/pass/returnrecord.mod
+ 9131704c57e025c5d430ed3f921f1513  gcc/testsuite/gm2/iso/run/pass/setcons.mod
+ 346a1582840a2e083f48f3541f7e5ab3  gcc/testsuite/gm2/iso/run/pass/setcons2.mod
+ d6da0e36cb77069ba83fb40a1a52ec21  gcc/testsuite/gm2/iso/run/pass/setcons3.mod
+ c108009a4a0517faf179f720676fa5df  gcc/testsuite/gm2/iso/run/pass/setcons4.mod
+ 50b2504115bce1cb9e63bbef7c61eb3a  gcc/testsuite/gm2/iso/run/pass/setcons5.mod
  8fedf77113d653a5d34a508088470225  gcc/testsuite/gm2/iso/run/pass/shift.mod
  3f14a46336d423e5cb9de1c089eea96a  gcc/testsuite/gm2/iso/run/pass/shift2.mod
  e11beea7b7818fdfd024c43f20393bd9  gcc/testsuite/gm2/iso/run/pass/shift3.mod
*************** a54ec8a7fb388143dcdf9bf6ba8a0358  gcc/te
*** 121597,121603 ****
  31f73a7b9921b81db0836fefb79b1a18  gcc/testsuite/gm2/iso/run/pass/testarray.mod
  4d7687bca068e2077f170b6c8590e9e6  gcc/testsuite/gm2/iso/run/pass/testclock.mod
  8b34e4874d9f5cb694efcb8924f36ea9  gcc/testsuite/gm2/iso/run/pass/testclock2.mod
! 7bf6b9debcb93e4d790de77b832f7e02  gcc/testsuite/gm2/iso/run/pass/testgeneric.mod
  2099fa3a5b7dcee8b0ecac40aba33545  gcc/testsuite/gm2/iso/run/pass/testlarge.mod
  7b2aa03eef51583de3c83f4e2e72974e  gcc/testsuite/gm2/iso/run/pass/testsystem.mod
  55a2e1b2fa8f3546a13e3bc16789e644  gcc/testsuite/gm2/iso/run/pass/tinyconst.mod
--- 121684,121694 ----
  31f73a7b9921b81db0836fefb79b1a18  gcc/testsuite/gm2/iso/run/pass/testarray.mod
  4d7687bca068e2077f170b6c8590e9e6  gcc/testsuite/gm2/iso/run/pass/testclock.mod
  8b34e4874d9f5cb694efcb8924f36ea9  gcc/testsuite/gm2/iso/run/pass/testclock2.mod
! 26e2c554038755249409a6ef06a89aef  gcc/testsuite/gm2/iso/run/pass/testgeneric.mod
! 341e2db42cde5dfd0ef5c2ca9e24d40c  gcc/testsuite/gm2/iso/run/pass/testgeneric2.mod
! 095b4626814d73cc835695e5217e3a16  gcc/testsuite/gm2/iso/run/pass/testgeneric3.mod
! 99d641369219445a259b434e4bf47ad4  gcc/testsuite/gm2/iso/run/pass/testgeneric4.mod
! 55e236e59f3db4f55effcd92505287cd  gcc/testsuite/gm2/iso/run/pass/testgeneric5.mod
  2099fa3a5b7dcee8b0ecac40aba33545  gcc/testsuite/gm2/iso/run/pass/testlarge.mod
  7b2aa03eef51583de3c83f4e2e72974e  gcc/testsuite/gm2/iso/run/pass/testsystem.mod
  55a2e1b2fa8f3546a13e3bc16789e644  gcc/testsuite/gm2/iso/run/pass/tinyconst.mod
*************** a7bd734382497172aa271ae6f28c2872  gcc/te
*** 124974,124979 ****
--- 125065,125072 ----
  bc790bd930f8c4f971b8268bdda83659  gcc/testsuite/gnat.dg/specs/fe_inlining_helper.ads
  07a75ac7ade09270a3df5c08ed7d6c00  gcc/testsuite/gnat.dg/specs/finalizable1.ads
  8b2c27da0d1a366c730abf05792e6535  gcc/testsuite/gnat.dg/specs/finalizable2.ads
+ 5fae0e6ce0bf0682f90b885b0187cba4  gcc/testsuite/gnat.dg/specs/float_literal1.ads
+ 2af75a02119e9603ae73638b2cc012e4  gcc/testsuite/gnat.dg/specs/float_literal2.ads
  085a1214c06b4e9495c47b56f30e6cd3  gcc/testsuite/gnat.dg/specs/formal_type.ads
  b605c919a473b8d6808dd232aa7eaf49  gcc/testsuite/gnat.dg/specs/gen_interface.ads
  4830454a8335e61b1876284f60de9782  gcc/testsuite/gnat.dg/specs/gen_interface_p.ads
*************** a60d5bd3c7d97738a821caa2b6320a63  gcc/te
*** 125648,125653 ****
--- 125741,125748 ----
  3c7023a211454ed0b601f4509949969b  gcc/testsuite/gnat.dg/warn33.adb
  831b1f99f5a5a1534ee78ccfa364a4d6  gcc/testsuite/gnat.dg/warn33_pkg.ads
  39cca47bb47cf534b57f5fb91e1dd22b  gcc/testsuite/gnat.dg/warn34.adb
+ 4af842296c07e12c924b32d01cde728c  gcc/testsuite/gnat.dg/warn35.adb
+ b0802eb2de4cf36c5b6490eca1178e3f  gcc/testsuite/gnat.dg/warn36.adb
  3973b8e21a39fdc98663d8d4c6b3ae18  gcc/testsuite/gnat.dg/warn4.adb
  30bdcc5f53e82fa0a748765edd2d8e03  gcc/testsuite/gnat.dg/warn5.adb
  99d15089537d8f6f3bed5ba4b1675ffc  gcc/testsuite/gnat.dg/warn6.adb
*************** f37d4791cfa22e9a20848922ea5de498  gcc/te
*** 125712,125718 ****
  b760f8c4f0593565426879b84ab6787b  gcc/testsuite/go.go-torture/execute/var-1.go
  55c3fdb5eab9130c79b8548c994aa8d9  gcc/testsuite/go.go-torture/execute/var-2.go
  ac0017eb534302ec5987291f615d13ca  gcc/testsuite/go.go-torture/execute/var-3.go
! cfefa6ccbaecfca16e5e037a1ee096b8  gcc/testsuite/go.test/go-test.exp
  88c59e0bc9f2a79ed3a3e8f1409ed1d8  gcc/testsuite/go.test/test/235.go
  1a94dd86d2262280f883261800a13104  gcc/testsuite/go.test/test/64bit.go
  43e15a8d565d16ab908b7cf6db8e0bf9  gcc/testsuite/go.test/test/README.gcc
--- 125807,125813 ----
  b760f8c4f0593565426879b84ab6787b  gcc/testsuite/go.go-torture/execute/var-1.go
  55c3fdb5eab9130c79b8548c994aa8d9  gcc/testsuite/go.go-torture/execute/var-2.go
  ac0017eb534302ec5987291f615d13ca  gcc/testsuite/go.go-torture/execute/var-3.go
! 99743b0ac481e836a891d924cb2f194c  gcc/testsuite/go.test/go-test.exp
  88c59e0bc9f2a79ed3a3e8f1409ed1d8  gcc/testsuite/go.test/test/235.go
  1a94dd86d2262280f883261800a13104  gcc/testsuite/go.test/test/64bit.go
  43e15a8d565d16ab908b7cf6db8e0bf9  gcc/testsuite/go.test/test/README.gcc
*************** c884fefd900231e35653f1a0c53cd49a  gcc/te
*** 129098,129104 ****
  8c98b46e704d13d47cba917233ecfb0a  gcc/testsuite/rust/compile/closure_move_expr.rs
  514b6cc95fda2022cc64dc749b80bd68  gcc/testsuite/rust/compile/closure_no_type_anno.rs
  8324849ae1f0337b7b3300a3b10989d8  gcc/testsuite/rust/compile/cmp1.rs
! fc77e8984ed32ca4b169f07a7c33743c  gcc/testsuite/rust/compile/compile.exp
  ea8b519b5f6dc20919765a2d12253cf0  gcc/testsuite/rust/compile/complex-path1.rs
  b8caa30e14e18cfb49d1bed1ae69d8e0  gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs
  7b21d552483815a7f5bc7562d25dff08  gcc/testsuite/rust/compile/const-issue1440.rs
--- 129193,129200 ----
  8c98b46e704d13d47cba917233ecfb0a  gcc/testsuite/rust/compile/closure_move_expr.rs
  514b6cc95fda2022cc64dc749b80bd68  gcc/testsuite/rust/compile/closure_no_type_anno.rs
  8324849ae1f0337b7b3300a3b10989d8  gcc/testsuite/rust/compile/cmp1.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/compile.exp
! 81007cbec0af22f948a0b6fa4bf8ac8c  gcc/testsuite/rust/compile/compiler_builtins_gate.rs
  ea8b519b5f6dc20919765a2d12253cf0  gcc/testsuite/rust/compile/complex-path1.rs
  b8caa30e14e18cfb49d1bed1ae69d8e0  gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs
  7b21d552483815a7f5bc7562d25dff08  gcc/testsuite/rust/compile/const-issue1440.rs
*************** a76f341ccd5fefbbc01a53f44e7feaf2  gcc/te
*** 129135,129140 ****
--- 129231,129240 ----
  25eb2b47069bab5628a45c28451d0425  gcc/testsuite/rust/compile/const_trait_fn.rs
  6721281195cc56cd12e84384cd45cd14  gcc/testsuite/rust/compile/continue1.rs
  3370848ae37e0693aa39989f2c545c89  gcc/testsuite/rust/compile/crate-metavar1.rs
+ c05e382293596d6db07a68db7ac92ff4  gcc/testsuite/rust/compile/ctlz.rs
+ 9faa922b70fcfa4e42cf0622f60be08f  gcc/testsuite/rust/compile/ctlz_nonzero.rs
+ 3158b338fb88c41e9720caa331fed16d  gcc/testsuite/rust/compile/cttz.rs
+ 32e0d094fc3d19605b5bdc758a79f1d4  gcc/testsuite/rust/compile/cttz_nonzero.rs
  0e35180eb3f40915dc324e9d5517c1aa  gcc/testsuite/rust/compile/deadcode_err1.rs
  274c5bccf4091c298f8b3bcb0001befb  gcc/testsuite/rust/compile/deadcode_err2.rs
  938e724daf0b9c0267c67985ebfc93e8  gcc/testsuite/rust/compile/debug-diagnostics-default.rs
*************** b923aeb3b899eb38e6171f196d629aa4  gcc/te
*** 129171,129182 ****
  8f3ba2239e7c3fe8d7c05028be2fab35  gcc/testsuite/rust/compile/doc_isolated_cr_inner_block_comment.rs
  b9d63212cced17f6d52eb1b38435a8bc  gcc/testsuite/rust/compile/doc_isolated_cr_inner_line_comment.rs
  325f757f357f27fb55dacdaed8f24d6a  gcc/testsuite/rust/compile/doc_isolated_cr_line_comment.rs
! 3c60f53ca4f8f94aecaf505552d4d13d  gcc/testsuite/rust/compile/doc_macro.rs
  ffccd19a7721d4e438526bc94d785560  gcc/testsuite/rust/compile/dropck_eyepatch_feature_gate.rs
  95d3e14a4c9c5b1fb5d1171f270642c7  gcc/testsuite/rust/compile/dup_fields.rs
  7d596256980e172cd54a08f34b7f7d48  gcc/testsuite/rust/compile/e0579-neg-float-fail.rs
  f73c3350fbe5e538bfe6eef0852dc34a  gcc/testsuite/rust/compile/e0579-neg-float.rs
! 1fd7ee16cfd3d5b9090854016d939af7  gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/rust/compile/empty.in
  564795495212ff88b9e379884a8dac14  gcc/testsuite/rust/compile/empty_comment_before_match.rs
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/rust/compile/empty_file
--- 129271,129282 ----
  8f3ba2239e7c3fe8d7c05028be2fab35  gcc/testsuite/rust/compile/doc_isolated_cr_inner_block_comment.rs
  b9d63212cced17f6d52eb1b38435a8bc  gcc/testsuite/rust/compile/doc_isolated_cr_inner_line_comment.rs
  325f757f357f27fb55dacdaed8f24d6a  gcc/testsuite/rust/compile/doc_isolated_cr_line_comment.rs
! ead4df48e55f0f1f47527f8f29ed0ce4  gcc/testsuite/rust/compile/doc_macro.rs
  ffccd19a7721d4e438526bc94d785560  gcc/testsuite/rust/compile/dropck_eyepatch_feature_gate.rs
  95d3e14a4c9c5b1fb5d1171f270642c7  gcc/testsuite/rust/compile/dup_fields.rs
  7d596256980e172cd54a08f34b7f7d48  gcc/testsuite/rust/compile/e0579-neg-float-fail.rs
  f73c3350fbe5e538bfe6eef0852dc34a  gcc/testsuite/rust/compile/e0579-neg-float.rs
! 702ed6eef747ba42a54fa1875a12ad6e  gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/rust/compile/empty.in
  564795495212ff88b9e379884a8dac14  gcc/testsuite/rust/compile/empty_comment_before_match.rs
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/rust/compile/empty_file
*************** e85e4435f9886753dfc2e0836a434884  gcc/te
*** 129214,129219 ****
--- 129314,129323 ----
  536d47109178df8055bba03c71e446dc  gcc/testsuite/rust/compile/found_struct.rs
  822bd4bfa118166b7ce9e227e448619e  gcc/testsuite/rust/compile/frust-compile-until.rs
  5aefe4aa69f12a438634875e4b880a59  gcc/testsuite/rust/compile/func-const-unsafe.rs
+ 69ac2143b237e1a0517dc3455fc1eb20  gcc/testsuite/rust/compile/func-qualifier-default.rs
+ c2050e2e97ce578c4a1b9039ff9fd264  gcc/testsuite/rust/compile/func-qualifier-order-1.rs
+ 6c03c405e1cc90bc51058e92265a7d04  gcc/testsuite/rust/compile/func-qualifier-order-2.rs
+ e0bee5a4c22efe0cd6d765bbc357b61b  gcc/testsuite/rust/compile/func-qualifier-order-3.rs
  75a2a5bfbc47f9e04d55698f35d7ee3e  gcc/testsuite/rust/compile/func1.rs
  385c7fe52a71146ebd69fa3932e89655  gcc/testsuite/rust/compile/func2.rs
  041141e3f27a564037016ff4d07d8694  gcc/testsuite/rust/compile/func3.rs
*************** c3212644de4c9469581403e49d446238  gcc/te
*** 129237,129242 ****
--- 129341,129347 ----
  0893e45c40da7e36c5ba62893a0c2ecd  gcc/testsuite/rust/compile/generics7.rs
  436da009afec898fb076b93082abc069  gcc/testsuite/rust/compile/generics8.rs
  c18d00968becf385b4485a2770fda544  gcc/testsuite/rust/compile/generics9.rs
+ fcc4268f711d648f4d568450401efb2e  gcc/testsuite/rust/compile/glob-import-all.rs
  8b837d34d6184c4e4686af825719e2ff  gcc/testsuite/rust/compile/glob_import_enum.rs
  f393b26051ebd301bb886eda0461df73  gcc/testsuite/rust/compile/global-path-array.rs
  8c8d8fc3e85056c49082b3493e6378b3  gcc/testsuite/rust/compile/if-without-else.rs
*************** da5455f5eeefc71d81325f48a7acf0e9  gcc/te
*** 129448,129458 ****
--- 129553,129565 ----
  b76ac33736a777ab60b5c604b6761789  gcc/testsuite/rust/compile/issue-3541-2.rs
  b826f04e1ec9135e64b69d339fb25c2f  gcc/testsuite/rust/compile/issue-3546.rs
  d6706afe5a5c484f71792a116ff4d8c9  gcc/testsuite/rust/compile/issue-3549.rs
+ aff351b392415275c044d0c9e0c881fb  gcc/testsuite/rust/compile/issue-3550.rs
  21645a0bb271669009b662b7ae7c9e7f  gcc/testsuite/rust/compile/issue-3551.rs
  c408705a75ea86bdace4608be1b932f3  gcc/testsuite/rust/compile/issue-3552.rs
  bce370641fd45c56bca9885e26e063d3  gcc/testsuite/rust/compile/issue-3553.rs
  0cb3f905ea0082dee143cb412902ff36  gcc/testsuite/rust/compile/issue-3554-1.rs
  510ffd8056e8593ca89214d9de53eb4c  gcc/testsuite/rust/compile/issue-3554-2.rs
+ 9efd559a9a0a2c33f6d19983e0686eec  gcc/testsuite/rust/compile/issue-3555.rs
  67ab7a9d676f7655790141bb62d6697f  gcc/testsuite/rust/compile/issue-3556.rs
  0ce6fc7eed01bcac6a4d7ad65b4eb902  gcc/testsuite/rust/compile/issue-3563.rs
  0e41a6a06c62b451c93b4d4a47db888a  gcc/testsuite/rust/compile/issue-3566-1.rs
*************** bce370641fd45c56bca9885e26e063d3  gcc/te
*** 129462,129468 ****
--- 129569,129577 ----
  5c04101d6dd500590cbef44fe4cd5da7  gcc/testsuite/rust/compile/issue-3581-1.rs
  9f1c28953ea9f8e6531af29ec873ed07  gcc/testsuite/rust/compile/issue-3581-2.rs
  8cdaa47bde420205c0d069eb2da1fbb1  gcc/testsuite/rust/compile/issue-3588.rs
+ b06f835897d7ada2ee7af7d3a0050b66  gcc/testsuite/rust/compile/issue-3591.rs
  4f9f6745c3f91429638f08ddc300a278  gcc/testsuite/rust/compile/issue-3592.rs
+ 9e5e3d9a138bfe6e51482d2e707ff829  gcc/testsuite/rust/compile/issue-3597.rs
  54fafda8d4c597931351c25c476964a2  gcc/testsuite/rust/compile/issue-3599.rs
  91616989816a9c1b009c340021385341  gcc/testsuite/rust/compile/issue-3605.rs
  74d6afecc27b6ede4694ce0279631f06  gcc/testsuite/rust/compile/issue-3606.rs
*************** b25609efc2f712d2a09250c475e07b7d  gcc/te
*** 129481,129515 ****
  c43e0ba8c898431e032f76f718e6e9cb  gcc/testsuite/rust/compile/issue-3647.rs
  97c7276eeb5507e8b7318ddc3e3b9d00  gcc/testsuite/rust/compile/issue-3648.rs
  00c83e74209bed4293871f80b7ef7a7f  gcc/testsuite/rust/compile/issue-3649.rs
  bc7d95d930db5b5c1261a29cfdf0245f  gcc/testsuite/rust/compile/issue-3652.rs
  903518e22a6b1c5767199a3d31b4d790  gcc/testsuite/rust/compile/issue-3654.rs
  20baf1e79fa9ab0bb1e3c5c5dec5a5df  gcc/testsuite/rust/compile/issue-3656.rs
  3b228b6476d4584550f094af0d723495  gcc/testsuite/rust/compile/issue-3657.rs
  312cde128ae0618e5c3ecf15c1729317  gcc/testsuite/rust/compile/issue-3659.rs
  f8fd7162517c8db4e0786228026d5021  gcc/testsuite/rust/compile/issue-3660.rs
! 47fa7a41133cad8c725f0f7b3011380e  gcc/testsuite/rust/compile/issue-3661.rs
  a8e1b026193dce378d9b61f1c932a52c  gcc/testsuite/rust/compile/issue-3662.rs
  e2b37685e29cbbd0517e0640b0f65422  gcc/testsuite/rust/compile/issue-3663.rs
  118d2d6a0e98f6be088f4e92751c9486  gcc/testsuite/rust/compile/issue-3664.rs
  be7df1149281bea8b1ca47621863fe4a  gcc/testsuite/rust/compile/issue-3665.rs
  b43671b6670dd904c5363e4eb286b4eb  gcc/testsuite/rust/compile/issue-3667.rs
  e6b6fb1b258b93ab93201241b0d5a9d7  gcc/testsuite/rust/compile/issue-3671.rs
  a0ac65584c4f4cdd06f991961dac181f  gcc/testsuite/rust/compile/issue-3711.rs
  baf285024f1531abdb8daf1e049cbc0f  gcc/testsuite/rust/compile/issue-3726.rs
  e7246e7b4b75973302c582fec5badbca  gcc/testsuite/rust/compile/issue-3836.rs
  fef3ff5eb30cae07e2454626862fe01a  gcc/testsuite/rust/compile/issue-3874.rs
  1ab865af7f00649108cf5fd10ae56cea  gcc/testsuite/rust/compile/issue-3876.rs
  c4ad4d2073d5409171c812a73675c0fa  gcc/testsuite/rust/compile/issue-3885.rs
  56889e6f3717e58e8f5c15d90abaeb6c  gcc/testsuite/rust/compile/issue-3898.rs
  c856563cadfd74bd1ed3c1555675e1f0  gcc/testsuite/rust/compile/issue-3904.rs
  2c8a0ca460ae824c399c4a1ac9a7f2cb  gcc/testsuite/rust/compile/issue-3915.rs
  cec06f4231a994c0d8b265b80d8949b7  gcc/testsuite/rust/compile/issue-3916.rs
  6bd878304bae891a1e658364a873d7f2  gcc/testsuite/rust/compile/issue-3922.rs
  049eabced73cd7f654b6034de8d98917  gcc/testsuite/rust/compile/issue-3924.rs
  3b18b973d23d5804e28907b4c44eac2d  gcc/testsuite/rust/compile/issue-3928.rs
  69cfa809b39b2162d4ade3fc83da9bd6  gcc/testsuite/rust/compile/issue-3929-1.rs
  7133ee2e1f25ec5051f109acc5c9c1da  gcc/testsuite/rust/compile/issue-3929-2.rs
  f57698e0b7aa840adb5238d6c5215443  gcc/testsuite/rust/compile/issue-3930.rs
  4eb8cf8afb4801d6faf4f7f05e232444  gcc/testsuite/rust/compile/issue-3947.rs
  78bd435c99d769e1d956c861153a2ad7  gcc/testsuite/rust/compile/issue-3951.rs
  1fab94333827efc3e18d73d62cc7dce4  gcc/testsuite/rust/compile/issue-3958.rs
--- 129590,129631 ----
  c43e0ba8c898431e032f76f718e6e9cb  gcc/testsuite/rust/compile/issue-3647.rs
  97c7276eeb5507e8b7318ddc3e3b9d00  gcc/testsuite/rust/compile/issue-3648.rs
  00c83e74209bed4293871f80b7ef7a7f  gcc/testsuite/rust/compile/issue-3649.rs
+ 7617c72efeccc165fa77196c4af1e8be  gcc/testsuite/rust/compile/issue-3651.rs
  bc7d95d930db5b5c1261a29cfdf0245f  gcc/testsuite/rust/compile/issue-3652.rs
  903518e22a6b1c5767199a3d31b4d790  gcc/testsuite/rust/compile/issue-3654.rs
  20baf1e79fa9ab0bb1e3c5c5dec5a5df  gcc/testsuite/rust/compile/issue-3656.rs
  3b228b6476d4584550f094af0d723495  gcc/testsuite/rust/compile/issue-3657.rs
  312cde128ae0618e5c3ecf15c1729317  gcc/testsuite/rust/compile/issue-3659.rs
  f8fd7162517c8db4e0786228026d5021  gcc/testsuite/rust/compile/issue-3660.rs
! 1a4f99cf46f7e3bfbd7960d8dea10221  gcc/testsuite/rust/compile/issue-3661.rs
  a8e1b026193dce378d9b61f1c932a52c  gcc/testsuite/rust/compile/issue-3662.rs
  e2b37685e29cbbd0517e0640b0f65422  gcc/testsuite/rust/compile/issue-3663.rs
  118d2d6a0e98f6be088f4e92751c9486  gcc/testsuite/rust/compile/issue-3664.rs
  be7df1149281bea8b1ca47621863fe4a  gcc/testsuite/rust/compile/issue-3665.rs
  b43671b6670dd904c5363e4eb286b4eb  gcc/testsuite/rust/compile/issue-3667.rs
+ 1942d0a2a1f785da08bbee7d60051e01  gcc/testsuite/rust/compile/issue-3670.rs
  e6b6fb1b258b93ab93201241b0d5a9d7  gcc/testsuite/rust/compile/issue-3671.rs
+ 2908138ca3094f2913c5df2b1ba82742  gcc/testsuite/rust/compile/issue-3672.rs
  a0ac65584c4f4cdd06f991961dac181f  gcc/testsuite/rust/compile/issue-3711.rs
  baf285024f1531abdb8daf1e049cbc0f  gcc/testsuite/rust/compile/issue-3726.rs
  e7246e7b4b75973302c582fec5badbca  gcc/testsuite/rust/compile/issue-3836.rs
  fef3ff5eb30cae07e2454626862fe01a  gcc/testsuite/rust/compile/issue-3874.rs
+ 6b37a9bd76bc73ad035a531760823890  gcc/testsuite/rust/compile/issue-3875.rs
  1ab865af7f00649108cf5fd10ae56cea  gcc/testsuite/rust/compile/issue-3876.rs
  c4ad4d2073d5409171c812a73675c0fa  gcc/testsuite/rust/compile/issue-3885.rs
  56889e6f3717e58e8f5c15d90abaeb6c  gcc/testsuite/rust/compile/issue-3898.rs
  c856563cadfd74bd1ed3c1555675e1f0  gcc/testsuite/rust/compile/issue-3904.rs
+ 803809848ce620ab9e5bdeb6bfabe181  gcc/testsuite/rust/compile/issue-3910.rs
  2c8a0ca460ae824c399c4a1ac9a7f2cb  gcc/testsuite/rust/compile/issue-3915.rs
  cec06f4231a994c0d8b265b80d8949b7  gcc/testsuite/rust/compile/issue-3916.rs
+ 83cb8b20d4fe222e94733e73ebab1820  gcc/testsuite/rust/compile/issue-3919-ice-func-parms.rs
  6bd878304bae891a1e658364a873d7f2  gcc/testsuite/rust/compile/issue-3922.rs
  049eabced73cd7f654b6034de8d98917  gcc/testsuite/rust/compile/issue-3924.rs
  3b18b973d23d5804e28907b4c44eac2d  gcc/testsuite/rust/compile/issue-3928.rs
  69cfa809b39b2162d4ade3fc83da9bd6  gcc/testsuite/rust/compile/issue-3929-1.rs
  7133ee2e1f25ec5051f109acc5c9c1da  gcc/testsuite/rust/compile/issue-3929-2.rs
  f57698e0b7aa840adb5238d6c5215443  gcc/testsuite/rust/compile/issue-3930.rs
+ efedd9bf51f20e2442a9ebe031c93e70  gcc/testsuite/rust/compile/issue-3931.rs
  4eb8cf8afb4801d6faf4f7f05e232444  gcc/testsuite/rust/compile/issue-3947.rs
  78bd435c99d769e1d956c861153a2ad7  gcc/testsuite/rust/compile/issue-3951.rs
  1fab94333827efc3e18d73d62cc7dce4  gcc/testsuite/rust/compile/issue-3958.rs
*************** bd749f9bfd29e6667e7e252ad4fcb308  gcc/te
*** 129547,129553 ****
  fefe8876b61f2ea8b2778fe5218b58d9  gcc/testsuite/rust/compile/issue-4219.rs
  8c94b3e7c76d776d5d6ea7583a0cc936  gcc/testsuite/rust/compile/issue-4222.rs
  078c998e0bef1c3f75f70ab856836cf1  gcc/testsuite/rust/compile/issue-4225.rs
! 7ccbd8223c079ef80e4a3ddfa139fb7e  gcc/testsuite/rust/compile/issue-4226.rs
  3e09edbee458729b7ef284ee399dd891  gcc/testsuite/rust/compile/issue-4231.rs
  b71d5ff0a38e7a4230824523da226d1d  gcc/testsuite/rust/compile/issue-4232.rs
  510c1b618e30d63f72b351215369f234  gcc/testsuite/rust/compile/issue-4234.rs
--- 129663,129669 ----
  fefe8876b61f2ea8b2778fe5218b58d9  gcc/testsuite/rust/compile/issue-4219.rs
  8c94b3e7c76d776d5d6ea7583a0cc936  gcc/testsuite/rust/compile/issue-4222.rs
  078c998e0bef1c3f75f70ab856836cf1  gcc/testsuite/rust/compile/issue-4225.rs
! 751255fd9a39e6c61470cae8afab84fd  gcc/testsuite/rust/compile/issue-4226.rs
  3e09edbee458729b7ef284ee399dd891  gcc/testsuite/rust/compile/issue-4231.rs
  b71d5ff0a38e7a4230824523da226d1d  gcc/testsuite/rust/compile/issue-4232.rs
  510c1b618e30d63f72b351215369f234  gcc/testsuite/rust/compile/issue-4234.rs
*************** b9dece72b980e6878e0b9c8f92233dad  gcc/te
*** 129571,129576 ****
--- 129687,129693 ----
  6e2900f5f167d67ed6e69842a0ef2a48  gcc/testsuite/rust/compile/issue-4413.rs
  7835d03556e24617123ceaf32f087c93  gcc/testsuite/rust/compile/issue-4414.rs
  a54fd203759501635c8dded722e53305  gcc/testsuite/rust/compile/issue-4433.rs
+ 056ded6ab1597de901b0442358e37ff4  gcc/testsuite/rust/compile/issue-4517.rs
  a814a3e2cad8eccf8272598f00384a38  gcc/testsuite/rust/compile/issue-557.rs
  93b8051018ad8ff1a45c001b33db9697  gcc/testsuite/rust/compile/issue-635-1.rs
  45b28bac74e6ab3db3594e805656e836  gcc/testsuite/rust/compile/issue-635-2.rs
*************** beb150200d09ac1befce9e72c3e91953  gcc/te
*** 129579,129585 ****
  870ba247d32fddd243ad7e4454d5725a  gcc/testsuite/rust/compile/issue-855.rs
  ef28cba4ab6fb8e74465eb070b887387  gcc/testsuite/rust/compile/issue-867.rs
  a84db31db1ee4fdf339e745cda91d4e3  gcc/testsuite/rust/compile/issue-925.rs
! 93429c6e74734d98298b0370469e046a  gcc/testsuite/rust/compile/issue_4402_foo.rs
  1b6b24150133d5d289bc3d802d3ff5a0  gcc/testsuite/rust/compile/iterators1.rs
  5a347e59d47b125a2cd33d06e8663f67  gcc/testsuite/rust/compile/lang-impl.rs
  b13a9b4fdde57deff61e694ae3c96e53  gcc/testsuite/rust/compile/lang_feature_gate.rs
--- 129696,129702 ----
  870ba247d32fddd243ad7e4454d5725a  gcc/testsuite/rust/compile/issue-855.rs
  ef28cba4ab6fb8e74465eb070b887387  gcc/testsuite/rust/compile/issue-867.rs
  a84db31db1ee4fdf339e745cda91d4e3  gcc/testsuite/rust/compile/issue-925.rs
! a9f1fae1fccdf4c532a7aa0372993dd2  gcc/testsuite/rust/compile/issue_4402_foo.rs
  1b6b24150133d5d289bc3d802d3ff5a0  gcc/testsuite/rust/compile/iterators1.rs
  5a347e59d47b125a2cd33d06e8663f67  gcc/testsuite/rust/compile/lang-impl.rs
  b13a9b4fdde57deff61e694ae3c96e53  gcc/testsuite/rust/compile/lang_feature_gate.rs
*************** b13a9b4fdde57deff61e694ae3c96e53  gcc/te
*** 129589,129595 ****
  40416d83c115d9b158e2ce39e28e0fda  gcc/testsuite/rust/compile/link_section-malformed.rs
  1c249b8fecea4da2c1b5a0c6c16465db  gcc/testsuite/rust/compile/lookup_err1.rs
  2bd6bcd6113b1f99111fb8ff6a7d75c7  gcc/testsuite/rust/compile/loop_constant_context.rs
! a5a18a8f356069323791aec9fd9f814f  gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp
  cb8c4d14800837477cd7a5ac34ee53ef  gcc/testsuite/rust/compile/macros/builtin/compile_error.rs
  f26cb01b22ed4b2c9501fa0184223c2e  gcc/testsuite/rust/compile/macros/builtin/concat.rs
  301621160505aa17f44e4d7e57866c82  gcc/testsuite/rust/compile/macros/builtin/eager1.rs
--- 129706,129712 ----
  40416d83c115d9b158e2ce39e28e0fda  gcc/testsuite/rust/compile/link_section-malformed.rs
  1c249b8fecea4da2c1b5a0c6c16465db  gcc/testsuite/rust/compile/lookup_err1.rs
  2bd6bcd6113b1f99111fb8ff6a7d75c7  gcc/testsuite/rust/compile/loop_constant_context.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp
  cb8c4d14800837477cd7a5ac34ee53ef  gcc/testsuite/rust/compile/macros/builtin/compile_error.rs
  f26cb01b22ed4b2c9501fa0184223c2e  gcc/testsuite/rust/compile/macros/builtin/concat.rs
  301621160505aa17f44e4d7e57866c82  gcc/testsuite/rust/compile/macros/builtin/eager1.rs
*************** cb74349555219f2c7d6160714b93a6bd  gcc/te
*** 129700,129706 ****
  2fe34921fe2f009319438bae53a516ff  gcc/testsuite/rust/compile/macros/mbe/macro_return.rs
  505a80d3017c261d0c0faa5e00a54afc  gcc/testsuite/rust/compile/macros/mbe/macro_rules_macro_rules.rs
  870cd4b1b72ca1579c8b3d9a6e3ca2fa  gcc/testsuite/rust/compile/macros/mbe/macro_use1.rs
! a5a18a8f356069323791aec9fd9f814f  gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp
  b87ade356343086f0912e7966b962bbb  gcc/testsuite/rust/compile/macros/mbe/meta-param.rs
  1f68f267de1c42278d88f822578f6b1c  gcc/testsuite/rust/compile/macros/proc/attribute_crate_type.rs
  7b598aaf128786703d737a9a01663242  gcc/testsuite/rust/compile/macros/proc/attribute_non_function.rs
--- 129817,129823 ----
  2fe34921fe2f009319438bae53a516ff  gcc/testsuite/rust/compile/macros/mbe/macro_return.rs
  505a80d3017c261d0c0faa5e00a54afc  gcc/testsuite/rust/compile/macros/mbe/macro_rules_macro_rules.rs
  870cd4b1b72ca1579c8b3d9a6e3ca2fa  gcc/testsuite/rust/compile/macros/mbe/macro_use1.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp
  b87ade356343086f0912e7966b962bbb  gcc/testsuite/rust/compile/macros/mbe/meta-param.rs
  1f68f267de1c42278d88f822578f6b1c  gcc/testsuite/rust/compile/macros/proc/attribute_crate_type.rs
  7b598aaf128786703d737a9a01663242  gcc/testsuite/rust/compile/macros/proc/attribute_non_function.rs
*************** e97d3dde5d907d2ce7ab2e6cab07eb63  gcc/te
*** 129721,129727 ****
  bbdb9f0568b8f7cf5531b32512812093  gcc/testsuite/rust/compile/macros/proc/non_root_module.rs
  6788cde113498febb4994195ad38611e  gcc/testsuite/rust/compile/macros/proc/non_root_trait_method.rs
  969d37790c3577f313949ab610b5093f  gcc/testsuite/rust/compile/macros/proc/private.rs
! a5a18a8f356069323791aec9fd9f814f  gcc/testsuite/rust/compile/macros/proc/proc_macro.exp
  3ddb8ff3aa288c5534704cf07fb4a31a  gcc/testsuite/rust/compile/macros/proc/pub_function.rs
  5c3ac43ca012b9ef427f72c84253a6aa  gcc/testsuite/rust/compile/macros/proc/pub_module.rs
  8b5bd5e8fa486f76b7d454b353887bfb  gcc/testsuite/rust/compile/match-identifierpattern-enum.rs
--- 129838,129844 ----
  bbdb9f0568b8f7cf5531b32512812093  gcc/testsuite/rust/compile/macros/proc/non_root_module.rs
  6788cde113498febb4994195ad38611e  gcc/testsuite/rust/compile/macros/proc/non_root_trait_method.rs
  969d37790c3577f313949ab610b5093f  gcc/testsuite/rust/compile/macros/proc/private.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/macros/proc/proc_macro.exp
  3ddb8ff3aa288c5534704cf07fb4a31a  gcc/testsuite/rust/compile/macros/proc/pub_function.rs
  5c3ac43ca012b9ef427f72c84253a6aa  gcc/testsuite/rust/compile/macros/proc/pub_module.rs
  8b5bd5e8fa486f76b7d454b353887bfb  gcc/testsuite/rust/compile/match-identifierpattern-enum.rs
*************** c810d046836ba823a23bc9d5ec6c707e  gcc/te
*** 129733,129739 ****
  39c6ae282dba15a3530638db64738c0b  gcc/testsuite/rust/compile/match-scope.rs
  d0bd7fb890101c1b7b872de5eb2d3823  gcc/testsuite/rust/compile/match-slicepattern-array.rs
  358dbaf51f260ecd2d04888d03545af5  gcc/testsuite/rust/compile/match-slicepattern-slice.rs
! 3f4f4c943e7dc8d1e5e6c748a6b4e25f  gcc/testsuite/rust/compile/match-struct-path.rs
  0254375080772a34b327f39542452054  gcc/testsuite/rust/compile/match-structpattern-tuplefield-err.rs
  96b52c4545acfae3891c360e4087e400  gcc/testsuite/rust/compile/match-structpattern-tuplefield.rs
  96b7599bdbb49f1d4f599159826b274c  gcc/testsuite/rust/compile/match-tuplestructpattern-err.rs
--- 129850,129856 ----
  39c6ae282dba15a3530638db64738c0b  gcc/testsuite/rust/compile/match-scope.rs
  d0bd7fb890101c1b7b872de5eb2d3823  gcc/testsuite/rust/compile/match-slicepattern-array.rs
  358dbaf51f260ecd2d04888d03545af5  gcc/testsuite/rust/compile/match-slicepattern-slice.rs
! fa8f74b3d8e442faf12adeae76b25d1a  gcc/testsuite/rust/compile/match-struct-path.rs
  0254375080772a34b327f39542452054  gcc/testsuite/rust/compile/match-structpattern-tuplefield-err.rs
  96b52c4545acfae3891c360e4087e400  gcc/testsuite/rust/compile/match-structpattern-tuplefield.rs
  96b7599bdbb49f1d4f599159826b274c  gcc/testsuite/rust/compile/match-tuplestructpattern-err.rs
*************** ffe4dc915956341c38692d2c83ae269e  gcc/te
*** 129834,129840 ****
  ad92a0c142ea935286208a3f203656a7  gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs
  3f996bd45c64270bd4d6d1d1ce90ac29  gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs
  bda5856f76b41c9208ff016ef1f50a1e  gcc/testsuite/rust/compile/parse_specialization.rs
! ca032b32a168e2722b77943ddc4955a7  gcc/testsuite/rust/compile/parse_time_feature_gate.rs
  d47bb2df5d518b3c7a28d2063bcac758  gcc/testsuite/rust/compile/parse_variadic_function.rs
  881f42ff86c88cc9b212d26005d2ab38  gcc/testsuite/rust/compile/path_as_generic_arg.rs
  782570514ed597a3ae13c94d445c203d  gcc/testsuite/rust/compile/pattern-or.rs
--- 129951,129957 ----
  ad92a0c142ea935286208a3f203656a7  gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs
  3f996bd45c64270bd4d6d1d1ce90ac29  gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs
  bda5856f76b41c9208ff016ef1f50a1e  gcc/testsuite/rust/compile/parse_specialization.rs
! 83c14f25f7b3041c4426e13d18d3f461  gcc/testsuite/rust/compile/parse_time_feature_gate.rs
  d47bb2df5d518b3c7a28d2063bcac758  gcc/testsuite/rust/compile/parse_variadic_function.rs
  881f42ff86c88cc9b212d26005d2ab38  gcc/testsuite/rust/compile/path_as_generic_arg.rs
  782570514ed597a3ae13c94d445c203d  gcc/testsuite/rust/compile/pattern-or.rs
*************** e7bd6565ceef86474918d000ddebccae  gcc/te
*** 129958,129964 ****
  ce9ba191483b507c8d1f23bed3e115e0  gcc/testsuite/rust/compile/torture/coercion1.rs
  bd8f8dbd1c3983c6c4fadd764c8449e0  gcc/testsuite/rust/compile/torture/coercion2.rs
  fde92497777022d1c8b356f44dab0c51  gcc/testsuite/rust/compile/torture/comparison_expr1.rs
! 5d50650bbd7b7d190cee1392b726a12b  gcc/testsuite/rust/compile/torture/compile.exp
  f7b574f053a4696689ce322daa445508  gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs
  c49a893b1c5c4b475772e8d47a0f6d97  gcc/testsuite/rust/compile/torture/conditional.rs
  13990f1954112d721f957f9a11fa603f  gcc/testsuite/rust/compile/torture/constant1.rs
--- 130075,130081 ----
  ce9ba191483b507c8d1f23bed3e115e0  gcc/testsuite/rust/compile/torture/coercion1.rs
  bd8f8dbd1c3983c6c4fadd764c8449e0  gcc/testsuite/rust/compile/torture/coercion2.rs
  fde92497777022d1c8b356f44dab0c51  gcc/testsuite/rust/compile/torture/comparison_expr1.rs
! 70031c9ff4184cf723ac881e46c19862  gcc/testsuite/rust/compile/torture/compile.exp
  f7b574f053a4696689ce322daa445508  gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs
  c49a893b1c5c4b475772e8d47a0f6d97  gcc/testsuite/rust/compile/torture/conditional.rs
  13990f1954112d721f957f9a11fa603f  gcc/testsuite/rust/compile/torture/constant1.rs
*************** eafc3609e718433c38b4e9ce138045eb  gcc/te
*** 130282,130288 ****
  4927c8b0652eb932ad1b41cff0243028  gcc/testsuite/rust/compile/xfail/lifetime_param.rs
  79ef3505ee46354ee0696ab7463ec1ab  gcc/testsuite/rust/compile/xfail/name_resolution21.rs
  b4c5bea56ad8f6cea0be06faebe02cfe  gcc/testsuite/rust/compile/xfail/struct_field_vis.rs
! dea6eee8962c9f7250d8b8b7196379dd  gcc/testsuite/rust/compile/xfail/xfail.exp
  05333e3c8362c7acaa317b099d3f4499  gcc/testsuite/rust/compile/zero_sized_slice.rs
  72a209ae1be16068b31449ad01b6825a  gcc/testsuite/rust/core/core.exp
  d3f3c5740022aef25e085e09c7463efc  gcc/testsuite/rust/debug/chartype.rs
--- 130399,130405 ----
  4927c8b0652eb932ad1b41cff0243028  gcc/testsuite/rust/compile/xfail/lifetime_param.rs
  79ef3505ee46354ee0696ab7463ec1ab  gcc/testsuite/rust/compile/xfail/name_resolution21.rs
  b4c5bea56ad8f6cea0be06faebe02cfe  gcc/testsuite/rust/compile/xfail/struct_field_vis.rs
! e6cd697b0667152ba39443b3a5693da0  gcc/testsuite/rust/compile/xfail/xfail.exp
  05333e3c8362c7acaa317b099d3f4499  gcc/testsuite/rust/compile/zero_sized_slice.rs
  72a209ae1be16068b31449ad01b6825a  gcc/testsuite/rust/core/core.exp
  d3f3c5740022aef25e085e09c7463efc  gcc/testsuite/rust/debug/chartype.rs
*************** c7800d2a071ca2035e1e11d541d30282  gcc/te
*** 130298,130306 ****
--- 130415,130426 ----
  62ba180d7563201b9ef58cd0f08239e4  gcc/testsuite/rust/execute/bswap.rs
  4f364d5e8f1e982f8dd260d4e285ddcb  gcc/testsuite/rust/execute/crate-metavar1.rs
  ee134a130743701047cd96c1fbf6fd01  gcc/testsuite/rust/execute/execute.exp
+ 5fce9179d59f0126f11a1db088901e50  gcc/testsuite/rust/execute/ident_pat_vs_path_1.rs
+ 1367735cf0c407f6eac379c6d157ffc4  gcc/testsuite/rust/execute/ident_pat_vs_path_2.rs
  ee23f2ac9014108d621746737e1803e4  gcc/testsuite/rust/execute/inline_asm_inout_ident.rs
  662f5147acc82b839a44e77df01fd782  gcc/testsuite/rust/execute/inline_asm_inout_var.rs
  ea3394a2e4f70b56cff9533b77626b80  gcc/testsuite/rust/execute/issue-1245.rs
+ b3889753c0ac11385836b9891bb934cc  gcc/testsuite/rust/execute/non_decimal_128_saturation.rs
  b4a0564525cb409452c76182233b23f4  gcc/testsuite/rust/execute/torture/arrays.rs
  f4ad97f462282641b0be461bfd9da9b1  gcc/testsuite/rust/execute/torture/atomic_load.rs
  d47f35842ab0532a87ccf6d3e0226d55  gcc/testsuite/rust/execute/torture/atomic_store.rs
*************** cf3c2e8a32e22bb5a54cc44916eb077d  gcc/te
*** 130342,130347 ****
--- 130462,130487 ----
  bb0ddd95fe3f5578010121054958e8a8  gcc/testsuite/rust/execute/torture/const_fold1.rs
  a1b8764cdc045929458a55830e126e25  gcc/testsuite/rust/execute/torture/const_fold2.rs
  2277be44f1f68c546656f52331e90beb  gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs
+ 9766b5fa120ab49cda38ffc3f8e7a231  gcc/testsuite/rust/execute/torture/ctlz.rs
+ 685e3562b098593b02de96cf9a355cd6  gcc/testsuite/rust/execute/torture/ctlz_i16.rs
+ babd446aea8010bd566b850cbab2505b  gcc/testsuite/rust/execute/torture/ctlz_i32.rs
+ 55d0ff37159e9bc6152b3aa5e8e1039c  gcc/testsuite/rust/execute/torture/ctlz_i64.rs
+ b2872fc701199a9484c994ea5a91a0c3  gcc/testsuite/rust/execute/torture/ctlz_i8.rs
+ d427748f217d630770a7a19a94944d61  gcc/testsuite/rust/execute/torture/ctlz_nonzero.rs
+ 3e32afdbded0dea9157d7c13bd2fc446  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i16.rs
+ 47e6d6388278dfb395e261a86e0be84e  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i32.rs
+ f32255c0aa43cab4389f955105094f49  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i64.rs
+ 582c0f7938354d21d470a4d0171ebcdf  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i8.rs
+ 9191c7c08cf926beb35467b8a071de7f  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u16.rs
+ 22d44dd14c0c9e64a4a2f5673f68505c  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u32.rs
+ 0d926e19a86fa64a32d079c6f3c7ff24  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u64.rs
+ a8b0cff976a2e7f6d2bc12d7860d2ff5  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u8.rs
+ f7d5ea174bf2692bfe0c356284f01909  gcc/testsuite/rust/execute/torture/ctlz_u16.rs
+ b0739150c5d47224d9e044df513c335b  gcc/testsuite/rust/execute/torture/ctlz_u32.rs
+ b2c045bab04a20f38ceaefbaee9d2dda  gcc/testsuite/rust/execute/torture/ctlz_u64.rs
+ d9c190b35c4328c5c284d28f10d3e92b  gcc/testsuite/rust/execute/torture/ctlz_u8.rs
+ a76dcf54c8d2c3bea6e7e3e4d503465b  gcc/testsuite/rust/execute/torture/cttz.rs
+ b49feec62709f6ce8cef5fac7dd8aaae  gcc/testsuite/rust/execute/torture/cttz_nonzero.rs
  821982e815686e67dc21eea14b062c29  gcc/testsuite/rust/execute/torture/decl_macro1.rs
  98ab35fa6fcae6b653dfc8410b57b655  gcc/testsuite/rust/execute/torture/decl_macro2.rs
  b87b7afb7bf91fb0988c4dd50750d625  gcc/testsuite/rust/execute/torture/decl_macro3.rs
*************** c021bc7a8aa59f2b8184de8bff6b1d14  gcc/tr
*** 130718,130724 ****
  1ad5e1ab19c4386e24d5679133ee5502  gcc/tree-profile.cc
  1c083b3b5e93b4a862d00afdc7110007  gcc/tree-scalar-evolution.cc
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
! 17c4c00ded2905c04437f79e44e63c75  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
  39f64c2e1c6ae742ac610f096aa9e013  gcc/tree-ssa-address.cc
  2cc8f7ab186c793b91875224ed16edc6  gcc/tree-ssa-address.h
--- 130858,130864 ----
  1ad5e1ab19c4386e24d5679133ee5502  gcc/tree-profile.cc
  1c083b3b5e93b4a862d00afdc7110007  gcc/tree-scalar-evolution.cc
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
! 6386c2ac578a3794d245342b702f721e  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
  39f64c2e1c6ae742ac610f096aa9e013  gcc/tree-ssa-address.cc
  2cc8f7ab186c793b91875224ed16edc6  gcc/tree-ssa-address.h
*************** fa83f982a805985b3a3da2ca5e10e43a  gcc/tr
*** 130760,130767 ****
  f83d0b12185538e6f679296bebfe3d2f  gcc/tree-ssa-operands.h
  ba27d633db52c7d11f4cd30e1d5ca251  gcc/tree-ssa-phiopt.cc
  8ab9314ce21d683c5fd9fc16bf7cab29  gcc/tree-ssa-phiprop.cc
! ef7bac10a8afab2cdc676699d4244188  gcc/tree-ssa-pre.cc
! c4d808a5a97aafd0f847b4cb7aea56b2  gcc/tree-ssa-propagate.cc
  d38017eb69a50f24b5e47ee97928afde  gcc/tree-ssa-propagate.h
  1f64e1425bb8bc82e544c5f49f89b084  gcc/tree-ssa-reassoc.cc
  82a2c700ac2e32f106bcbd11fc5cf152  gcc/tree-ssa-reassoc.h
--- 130900,130907 ----
  f83d0b12185538e6f679296bebfe3d2f  gcc/tree-ssa-operands.h
  ba27d633db52c7d11f4cd30e1d5ca251  gcc/tree-ssa-phiopt.cc
  8ab9314ce21d683c5fd9fc16bf7cab29  gcc/tree-ssa-phiprop.cc
! e356f4c7b22c3759a86c782d5e99d1a8  gcc/tree-ssa-pre.cc
! 5d6622629ccbf56551beb5cb3cc8684a  gcc/tree-ssa-propagate.cc
  d38017eb69a50f24b5e47ee97928afde  gcc/tree-ssa-propagate.h
  1f64e1425bb8bc82e544c5f49f89b084  gcc/tree-ssa-reassoc.cc
  82a2c700ac2e32f106bcbd11fc5cf152  gcc/tree-ssa-reassoc.h
*************** e992c1401c79c9a800a799632e7c3a66  gcc/va
*** 130840,130847 ****
  93e35ace3b0e7ef184149d285231fb36  gcc/value-range-storage.h
  44450674ee82f7f36311b3b58ea85b33  gcc/value-range.cc
  54f52d51793d03199259f9706fb0a9a1  gcc/value-range.h
! d8cea5c3e2f91237a9883149d5a0b189  gcc/value-relation.cc
! a5b43b36266e8e9188030eb977b957ea  gcc/value-relation.h
  d6e6c12ad7955457218136e35f5a30d6  gcc/var-tracking.cc
  1657e0e5b170dd495911d1c2ceeb23da  gcc/varasm.cc
  183473e8cac5bad9279eb1937e4edda9  gcc/varasm.h
--- 130980,130987 ----
  93e35ace3b0e7ef184149d285231fb36  gcc/value-range-storage.h
  44450674ee82f7f36311b3b58ea85b33  gcc/value-range.cc
  54f52d51793d03199259f9706fb0a9a1  gcc/value-range.h
! 89dd7a2e6c8aad8f04c37053eb24ec36  gcc/value-relation.cc
! ea7df3e5b6ab2e6e23e741431d583880  gcc/value-relation.h
  d6e6c12ad7955457218136e35f5a30d6  gcc/var-tracking.cc
  1657e0e5b170dd495911d1c2ceeb23da  gcc/varasm.cc
  183473e8cac5bad9279eb1937e4edda9  gcc/varasm.h
*************** fc49680d0c6e77e437523ea496a6b8c4  libga6
*** 131695,131701 ****
  095aff369c31681c96b933fbedd8e05f  libga68/posix.a68
  b0d017b83148520411f1c1ebdbf28b58  libga68/sppp.awk
  4ad0dcaa2eb0b81efb58d47400b0933d  libga68/standard.a68.in
! c64b5e0bc435ff5870b31a4c2e36298d  libgcc/ChangeLog
  9ce0b8c50fec68eb0555ae800e4e457e  libgcc/Makefile.in
  71d0f27da0d8bbe096136dc304bdb11f  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
--- 131835,131841 ----
  095aff369c31681c96b933fbedd8e05f  libga68/posix.a68
  b0d017b83148520411f1c1ebdbf28b58  libga68/sppp.awk
  4ad0dcaa2eb0b81efb58d47400b0933d  libga68/standard.a68.in
! 7c3e3bf68e94edf79dfb5f29e60dfa1b  libgcc/ChangeLog
  9ce0b8c50fec68eb0555ae800e4e457e  libgcc/Makefile.in
  71d0f27da0d8bbe096136dc304bdb11f  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
*************** d2fa85f1bc22d14c552031462b3944ce  libgcc
*** 131813,131819 ****
  34fe728d813280295b98732b81654866  libgcc/config/arm/linux-atomic-64bit.c
  a6083ea57a5ef546c5862c6c68a34e63  libgcc/config/arm/linux-atomic.c
  c8409715d042ea64ad14e845dc82f2c8  libgcc/config/arm/pr-support.c
! 131990bf9b0a8ab71c7abf0c49d4fbfa  libgcc/config/arm/sfp-machine.h
  66c18e858fb192aa9d8733ed47af3649  libgcc/config/arm/symbian-lib.h
  590a7c2d4350bb33aff791137f47872c  libgcc/config/arm/sync-cp15dmb.specs
  45a2162ebb3f12b9e0ec816b910c38bc  libgcc/config/arm/sync-dmb.specs
--- 131953,131960 ----
  34fe728d813280295b98732b81654866  libgcc/config/arm/linux-atomic-64bit.c
  a6083ea57a5ef546c5862c6c68a34e63  libgcc/config/arm/linux-atomic.c
  c8409715d042ea64ad14e845dc82f2c8  libgcc/config/arm/pr-support.c
! e327487e365e474296315adf39d7853c  libgcc/config/arm/sfp-exceptions.c
! 37afe13de73d3782667e9c1853823681  libgcc/config/arm/sfp-machine.h
  66c18e858fb192aa9d8733ed47af3649  libgcc/config/arm/symbian-lib.h
  590a7c2d4350bb33aff791137f47872c  libgcc/config/arm/sync-cp15dmb.specs
  45a2162ebb3f12b9e0ec816b910c38bc  libgcc/config/arm/sync-dmb.specs
*************** a86e3a4a0c8c3ead836f792603deed27  libgcc
*** 131826,131832 ****
  230e26f668e653d453f543f99cdbc374  libgcc/config/arm/t-linux-eabi
  2d31b2c95f5ce86c37c530027f6758ce  libgcc/config/arm/t-netbsd
  eb10bf2005ab426384c1efc127175521  libgcc/config/arm/t-netbsd-eabi
! 294383a4685d68c773d69b4f3d8b9ba6  libgcc/config/arm/t-softfp
  85c2b00db81a0aa187f2e2dfe5ace0b1  libgcc/config/arm/t-strongarm-elf
  fc87e45e073829d21e9427a38f435e3b  libgcc/config/arm/t-symbian
  943ce28c6268a08fe0811ea29b87d108  libgcc/config/arm/t-sync
--- 131967,131973 ----
  230e26f668e653d453f543f99cdbc374  libgcc/config/arm/t-linux-eabi
  2d31b2c95f5ce86c37c530027f6758ce  libgcc/config/arm/t-netbsd
  eb10bf2005ab426384c1efc127175521  libgcc/config/arm/t-netbsd-eabi
! cd73aa547e1b751f99dad44ce4d0345c  libgcc/config/arm/t-softfp
  85c2b00db81a0aa187f2e2dfe5ace0b1  libgcc/config/arm/t-strongarm-elf
  fc87e45e073829d21e9427a38f435e3b  libgcc/config/arm/t-symbian
  943ce28c6268a08fe0811ea29b87d108  libgcc/config/arm/t-sync
*************** e49696590b498a8938135e136810cd2a  libgcc
*** 133077,133083 ****
  a7934bf8214ada4c38df401f5eb1c08e  libgcc/libgcc-std.ver.in
  a48e808f88a857eaaf81c5369440734b  libgcc/libgcc2.c
  94234dd733df732fee839ea9d5afa16a  libgcc/libgcc2.h
! d61d6ca72a0e5d745c9a968b2df60856  libgcc/libgcov-driver-system.c
  e87d4eb1a1969a7eb370af0aaf4f6d5c  libgcc/libgcov-driver.c
  9a873ac12562d1f10ccdd749e145a26b  libgcc/libgcov-interface.c
  30a48161deffce5a9c3ba086eddd299b  libgcc/libgcov-merge.c
--- 133218,133224 ----
  a7934bf8214ada4c38df401f5eb1c08e  libgcc/libgcc-std.ver.in
  a48e808f88a857eaaf81c5369440734b  libgcc/libgcc2.c
  94234dd733df732fee839ea9d5afa16a  libgcc/libgcc2.h
! 15c4e8a5de5b58107916b1afa5fae1ff  libgcc/libgcov-driver-system.c
  e87d4eb1a1969a7eb370af0aaf4f6d5c  libgcc/libgcov-driver.c
  9a873ac12562d1f10ccdd749e145a26b  libgcc/libgcov-interface.c
  30a48161deffce5a9c3ba086eddd299b  libgcc/libgcov-merge.c
*************** d5f038474fd5faad3f79701cbb81bf30  libgco
*** 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
--- 133490,133496 ----
  9486776ee88dd841ac94aa73290a74bf  libgcobol/valconv.cc
  3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
  db95b8e503515d7615559adc1be6164a  libgcobol/xmlparse.cc
! 366028bce5d728fbac1557912a70bec5  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
*************** e284af4c0f472971a100d3119a949ca0  libgfo
*** 134163,134183 ****
  c7cd00c9388fb19d11e73347f5511c0a  libgfortran/generated/shape_i2.c
  447480a431957773b0c8301ed6bc72ad  libgfortran/generated/shape_i4.c
  f829b9dae2122807a5f1fea203682478  libgfortran/generated/shape_i8.c
! bb8d85e80c2687ccb71ac03417c04e58  libgfortran/generated/spread_c10.c
! cf7a1e537e66cfce1b2c58d40b7e5219  libgfortran/generated/spread_c16.c
! 3fcaaedd1c6574f6fa299f9f69f65426  libgfortran/generated/spread_c17.c
! 9e23f09ff8fe2b36ce6dd1af3f60441d  libgfortran/generated/spread_c4.c
! 8958d5e2e630fd42c289f4ca6ce139ce  libgfortran/generated/spread_c8.c
! 7e1844c7807c23da0dd5cc8c07465a4e  libgfortran/generated/spread_i1.c
! d2b7d9031c678abe41de4a802e510cc1  libgfortran/generated/spread_i16.c
! 044d397d67637172e9c7d75ef10ad317  libgfortran/generated/spread_i2.c
! 2c60aa168c92134249adbb4d49515bc7  libgfortran/generated/spread_i4.c
! 994eca61eee0c7127ccbce7d47694106  libgfortran/generated/spread_i8.c
! cb339ef3353ac03d2be6966f796ca7f1  libgfortran/generated/spread_r10.c
! 441c7d03ef2646fc32220992369dfeaa  libgfortran/generated/spread_r16.c
! 6f98fed782f0cd3fe340a79ca60655ed  libgfortran/generated/spread_r17.c
! 8bcc1e10ebe5dc40a13257e8b8e063ab  libgfortran/generated/spread_r4.c
! f0426ea5d98676c3d04ec10dc294262a  libgfortran/generated/spread_r8.c
  1525949684dd41b9f673e300c54363fb  libgfortran/generated/sum_c10.c
  8966acc93c9aee561d27dfca4bfa83b6  libgfortran/generated/sum_c16.c
  d840b97a55e1a6e9ce2aebe29b789981  libgfortran/generated/sum_c17.c
--- 134304,134324 ----
  c7cd00c9388fb19d11e73347f5511c0a  libgfortran/generated/shape_i2.c
  447480a431957773b0c8301ed6bc72ad  libgfortran/generated/shape_i4.c
  f829b9dae2122807a5f1fea203682478  libgfortran/generated/shape_i8.c
! 50f190e53faf1e91eb8b8a8cea67a828  libgfortran/generated/spread_c10.c
! d59ae17d6fa10a6946cd9be18a9b4667  libgfortran/generated/spread_c16.c
! bb7b44522c49bf5fd9ac6e03d808c34f  libgfortran/generated/spread_c17.c
! 0266bc1f0344819a3137cdeeb2051570  libgfortran/generated/spread_c4.c
! 4cd2a487838736310f34d6a164f81eb9  libgfortran/generated/spread_c8.c
! 3b99de96fa78f6b9dc96d5db05aa2eb5  libgfortran/generated/spread_i1.c
! c109166ac2334eb0a21578c64b49e8d5  libgfortran/generated/spread_i16.c
! 6da576e3a3e06c8649cfc0c262d1742b  libgfortran/generated/spread_i2.c
! ef4844ff9a15b2ef3d2aaee692a97d24  libgfortran/generated/spread_i4.c
! 0fe22b8d304a93956964c565bb3c3665  libgfortran/generated/spread_i8.c
! f1967d1da783c455edc3673041fdb2ac  libgfortran/generated/spread_r10.c
! e126288c6e7f23419d0f96e99c552d43  libgfortran/generated/spread_r16.c
! 4a26b50ec678cf64cdc4ed53e73ff591  libgfortran/generated/spread_r17.c
! bc9d5a299533bf5ac8d22ba262e06a6b  libgfortran/generated/spread_r4.c
! 03bb3efa9511a3fa3a2ac2b79773bb87  libgfortran/generated/spread_r8.c
  1525949684dd41b9f673e300c54363fb  libgfortran/generated/sum_c10.c
  8966acc93c9aee561d27dfca4bfa83b6  libgfortran/generated/sum_c16.c
  d840b97a55e1a6e9ce2aebe29b789981  libgfortran/generated/sum_c17.c
*************** f038cf47aa64bababd1dcaf393fd40d0  libgfo
*** 134371,134377 ****
  4b124acffc5421f07461bdc0b651bac5  libgfortran/m4/shape.m4
  2b8de82dc8d9a5bfe1aebe4edd8e2adc  libgfortran/m4/specific.m4
  fde11348d3f1f27d7e48fd646db7c9b0  libgfortran/m4/specific2.m4
! 36636db259e03cf279c0d9bc7b3e31f8  libgfortran/m4/spread.m4
  7199dcf2f2007668709669352e41a412  libgfortran/m4/sum.m4
  0ad0318f00c85db29d184dc3dff12276  libgfortran/m4/types.m4
  3f1c3afb70cbd5c1c5360f204f0b50e2  libgfortran/m4/unpack.m4
--- 134512,134518 ----
  4b124acffc5421f07461bdc0b651bac5  libgfortran/m4/shape.m4
  2b8de82dc8d9a5bfe1aebe4edd8e2adc  libgfortran/m4/specific.m4
  fde11348d3f1f27d7e48fd646db7c9b0  libgfortran/m4/specific2.m4
! 783e4d609d3b04156c533f25df2b30d5  libgfortran/m4/spread.m4
  7199dcf2f2007668709669352e41a412  libgfortran/m4/sum.m4
  0ad0318f00c85db29d184dc3dff12276  libgfortran/m4/types.m4
  3f1c3afb70cbd5c1c5360f204f0b50e2  libgfortran/m4/unpack.m4
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 139937,139943 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 37f3ea5d1715237eb236c45a56e69a7b  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  714e3b9c0810a61df01246c2a97e825a  libgomp/Makefile.am
  ebb578201b0bfde5d8221fca34ee44c4  libgomp/Makefile.in
--- 140078,140084 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 1a43c0d6447b0568b0ed8d0210dfaed3  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  714e3b9c0810a61df01246c2a97e825a  libgomp/Makefile.am
  ebb578201b0bfde5d8221fca34ee44c4  libgomp/Makefile.in
*************** afbc465058b9ba3f4c999bbdd4f3d1ae  libgom
*** 141048,141053 ****
--- 141189,141195 ----
  647e42c6f8847e9b2954a85db8b55452  libgomp/testsuite/libgomp.c/declare-variant-3-sm30.c
  446d3ecc5800c697d4bcd620373cb1af  libgomp/testsuite/libgomp.c/declare-variant-3-sm35.c
  6a2e3a3f922844ade1a50eb395e0f707  libgomp/testsuite/libgomp.c/declare-variant-3-sm37.c
+ 9008db63832f4b1be03b6efb3bf31ac3  libgomp/testsuite/libgomp.c/declare-variant-3-sm50.c
  4132f95b3a08365758ab8d3f63208b11  libgomp/testsuite/libgomp.c/declare-variant-3-sm52.c
  1869bfd2c2d4f9054d24c0a53a4788f4  libgomp/testsuite/libgomp.c/declare-variant-3-sm53.c
  f5213ec135b06c4fb357312be37288e0  libgomp/testsuite/libgomp.c/declare-variant-3-sm61.c
*************** e3d8ca5fb313ae31460660d3c39fb913  libgom
*** 141056,141062 ****
  6a06e807c91724ad57fad63397edfc07  libgomp/testsuite/libgomp.c/declare-variant-3-sm80.c
  67ae20a302c0ab13c08ae6c4e6ae29d5  libgomp/testsuite/libgomp.c/declare-variant-3-sm89.c
  7da3ac85e4c6bcbc1ce1d6d1c6575395  libgomp/testsuite/libgomp.c/declare-variant-3.c
! 990725ec4ad0102414e463c434143f4f  libgomp/testsuite/libgomp.c/declare-variant-3.h
  cc4ead5a0ad636ec62f0631bacc8ca4b  libgomp/testsuite/libgomp.c/declare-variant-4-gfx10-3-generic.c
  be70e184111446ef18f6ea1974005b74  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1030.c
  d73b5456e037cae4f16adc3fbf606295  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1031.c
--- 141198,141204 ----
  6a06e807c91724ad57fad63397edfc07  libgomp/testsuite/libgomp.c/declare-variant-3-sm80.c
  67ae20a302c0ab13c08ae6c4e6ae29d5  libgomp/testsuite/libgomp.c/declare-variant-3-sm89.c
  7da3ac85e4c6bcbc1ce1d6d1c6575395  libgomp/testsuite/libgomp.c/declare-variant-3.c
! cdd92ddc2b87d29ced3aa815a11893e4  libgomp/testsuite/libgomp.c/declare-variant-3.h
  cc4ead5a0ad636ec62f0631bacc8ca4b  libgomp/testsuite/libgomp.c/declare-variant-4-gfx10-3-generic.c
  be70e184111446ef18f6ea1974005b74  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1030.c
  d73b5456e037cae4f16adc3fbf606295  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1031.c
*************** a3baf88916a2a689c5da3ed49f314e9a  libgom
*** 141238,141244 ****
  d24c7f3c4eac986e211049a75d2a364b  libgomp/testsuite/libgomp.c/omp_orphan.c
  2c748d87d06ac3be76d01011ba097a1b  libgomp/testsuite/libgomp.c/omp_reduction.c
  2f91cfa20c8a42d1d6790ded7f1dedb3  libgomp/testsuite/libgomp.c/omp_target_is_present-2.c
! 1699fb00407b83042d183bca005a2d2f  libgomp/testsuite/libgomp.c/omp_target_is_present.c
  24baaabb70ef9cb52218e85c6e635d53  libgomp/testsuite/libgomp.c/omp_workshare1.c
  563f8ced1bddfb533121dc40dc3d8a33  libgomp/testsuite/libgomp.c/omp_workshare2.c
  7064c480ce2c1689a450d5ccba20159b  libgomp/testsuite/libgomp.c/omp_workshare3.c
--- 141380,141386 ----
  d24c7f3c4eac986e211049a75d2a364b  libgomp/testsuite/libgomp.c/omp_orphan.c
  2c748d87d06ac3be76d01011ba097a1b  libgomp/testsuite/libgomp.c/omp_reduction.c
  2f91cfa20c8a42d1d6790ded7f1dedb3  libgomp/testsuite/libgomp.c/omp_target_is_present-2.c
! 2039d04de645877e0ce96988e6256c01  libgomp/testsuite/libgomp.c/omp_target_is_present.c
  24baaabb70ef9cb52218e85c6e635d53  libgomp/testsuite/libgomp.c/omp_workshare1.c
  563f8ced1bddfb533121dc40dc3d8a33  libgomp/testsuite/libgomp.c/omp_workshare2.c
  7064c480ce2c1689a450d5ccba20159b  libgomp/testsuite/libgomp.c/omp_workshare3.c
*************** c7db4b5dee9ac08d55532ef8375a0a44  libgom
*** 141889,141894 ****
--- 142031,142037 ----
  ed9fbe24202460ac0d1324b917a21848  libgomp/testsuite/libgomp.fortran/pr90030.f90
  6a708c6e46808f6d4af2fd68ad5aac1a  libgomp/testsuite/libgomp.fortran/pr90779.f90
  525a2158ec6cd5547def75322fa30912  libgomp/testsuite/libgomp.fortran/pr93553.f90
+ 8061d28a5a0523c85e141e295f43c8ef  libgomp/testsuite/libgomp.fortran/pr95551-1.f90
  8b1a074bf6ac8ea5010df757cd5d381f  libgomp/testsuite/libgomp.fortran/pr95654.f90
  1a0d9a55fff1fc09bbe94b9bf7578792  libgomp/testsuite/libgomp.fortran/procptr1.f90
  c1a53ea8789c3861561b7fb5726a9ba2  libgomp/testsuite/libgomp.fortran/recursion1.f90
*************** b07707201a161cc672bc60acd1aec156  libgom
*** 141988,141994 ****
  25f675dca304722a9f04f20b15c3e46b  libgomp/testsuite/libgomp.fortran/target-present-3.f90
  ffc4f536027a66699af0956fc5b0d785  libgomp/testsuite/libgomp.fortran/target-print-1.f90
  b7c20b004458fd9909db3090ddfcd1d8  libgomp/testsuite/libgomp.fortran/target-simd.f90
- 06e3ddc01cecc71c2af49a64f38f6a88  libgomp/testsuite/libgomp.fortran/target-var.f90
  1db1fe2cc8dbdf1b311a5f49a4004ed7  libgomp/testsuite/libgomp.fortran/target1.f90
  5ead11a014d23aa66989fb7c241a75a2  libgomp/testsuite/libgomp.fortran/target10.f90
  cd35897c72fe52157d20924875a4168f  libgomp/testsuite/libgomp.fortran/target2.f90
--- 142131,142136 ----
*************** ae34a0a33c324e692b2da2ef2923edb3  libgom
*** 142767,142772 ****
--- 142909,142915 ----
  23f7ae65627ecb7962557bae27fe0f81  libgomp/testsuite/libgomp.oacc-fortran/pr90030.f90
  dcad51ef517f82a0e1efb6ee274b6304  libgomp/testsuite/libgomp.oacc-fortran/pr92970-1.f90
  ab1bef1451508c50b6d75e5790e61c2e  libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90
+ 8d4bd1f48ba216d97690e67548756891  libgomp/testsuite/libgomp.oacc-fortran/pr95551-1.f90
  57178f0c49f9adc4befee9c7b93d77af  libgomp/testsuite/libgomp.oacc-fortran/pr96628-part1.f90
  0713d6f197e69942e0bf3ce291d92c25  libgomp/testsuite/libgomp.oacc-fortran/pr96628-part2.f90
  fa39d40c522eeae1dc23fa3714cfed9d  libgomp/testsuite/libgomp.oacc-fortran/print-1-nvptx.f90
*************** db97a70a62d75baf7c6133362b383ccb  libobj
*** 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
--- 144042,144048 ----
  d1e7c7c92a4c08557a1274ac25bac6e2  libobjc/selector.c
  029b66bb69dc70e347fe3849fc60cfd3  libobjc/sendmsg.c
  e968027639cc91f736aa2aeaee56682c  libobjc/thr.c
! 0a47e9d0af1523d2cc660c95a24a2764  libphobos/ChangeLog
  958562279744f77373a0c5c9dc43b414  libphobos/Makefile.am
  a4ee57d4fc32508060fff33b4fc4f976  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
*************** ee88c20a7744a2305503e1670f3b7889  libpho
*** 143911,143917 ****
  fe4d29c76b2813284a7595bb311d044e  libphobos/configure.tgt
  6bc36d3a1bb57ce2fd265f1abf3faa98  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
! 15ee3aa574b8022c049f9e20ca705051  libphobos/libdruntime/MERGE
  29b6aeae31b2996a77b9f420f0456458  libphobos/libdruntime/Makefile.am
  0be46f144a7f91f7852ed248b31ea659  libphobos/libdruntime/Makefile.in
  38b5b71d4046d232eedb7b58c1651552  libphobos/libdruntime/__importc_builtins.di
--- 144054,144060 ----
  fe4d29c76b2813284a7595bb311d044e  libphobos/configure.tgt
  6bc36d3a1bb57ce2fd265f1abf3faa98  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
! a627eff632d29d573d3f04376091c75c  libphobos/libdruntime/MERGE
  29b6aeae31b2996a77b9f420f0456458  libphobos/libdruntime/Makefile.am
  0be46f144a7f91f7852ed248b31ea659  libphobos/libdruntime/Makefile.in
  38b5b71d4046d232eedb7b58c1651552  libphobos/libdruntime/__importc_builtins.di
*************** f6271a982ee04f42e338c07179c5fbfe  libpho
*** 144217,144223 ****
  4e2b82d5dc83f7f9285053a607aa20c5  libphobos/libdruntime/core/sys/posix/sched.d
  a586a5be75f2b5a94aee7452fb52511f  libphobos/libdruntime/core/sys/posix/semaphore.d
  4eef0680802ad27e2f47dd60c48c2cf8  libphobos/libdruntime/core/sys/posix/setjmp.d
! aebc9cf5d77af78cb4407e75374041ec  libphobos/libdruntime/core/sys/posix/signal.d
  af88cfa76758ed4a06ed76224d9edb61  libphobos/libdruntime/core/sys/posix/spawn.d
  e97da1a68691014b007087413c60fdf9  libphobos/libdruntime/core/sys/posix/stdc/time.d
  b15e3448a126cb62768af58248013451  libphobos/libdruntime/core/sys/posix/stdio.d
--- 144360,144366 ----
  4e2b82d5dc83f7f9285053a607aa20c5  libphobos/libdruntime/core/sys/posix/sched.d
  a586a5be75f2b5a94aee7452fb52511f  libphobos/libdruntime/core/sys/posix/semaphore.d
  4eef0680802ad27e2f47dd60c48c2cf8  libphobos/libdruntime/core/sys/posix/setjmp.d
! f9eb180fbf7a46a45691b42d2c437603  libphobos/libdruntime/core/sys/posix/signal.d
  af88cfa76758ed4a06ed76224d9edb61  libphobos/libdruntime/core/sys/posix/spawn.d
  e97da1a68691014b007087413c60fdf9  libphobos/libdruntime/core/sys/posix/stdc/time.d
  b15e3448a126cb62768af58248013451  libphobos/libdruntime/core/sys/posix/stdio.d
*************** e56fd11737f2c55b4255fe3d6ac1ef28  libpho
*** 144453,144459 ****
  5a204a18ba162e5057206a7aa2e7ed4a  libphobos/libdruntime/etc/valgrind/valgrind.d
  6d8c84f9aadc849a94d832fa65ac8d66  libphobos/libdruntime/etc/valgrind/valgrind_.c
  4925070faeff62a19810edd5aa54a1e9  libphobos/libdruntime/gcc/attribute.d
! e853fe302a2b5d2b8f7465b9a79414ee  libphobos/libdruntime/gcc/attributes.d
  117ff4ca7385e902ac7b5e7cb7a51a09  libphobos/libdruntime/gcc/backtrace.d
  dfc765dc63152343d6f21b706cd4d1e4  libphobos/libdruntime/gcc/builtins.d
  47a2adda2f32565aec9abda4f8039c13  libphobos/libdruntime/gcc/config.d.in
--- 144596,144602 ----
  5a204a18ba162e5057206a7aa2e7ed4a  libphobos/libdruntime/etc/valgrind/valgrind.d
  6d8c84f9aadc849a94d832fa65ac8d66  libphobos/libdruntime/etc/valgrind/valgrind_.c
  4925070faeff62a19810edd5aa54a1e9  libphobos/libdruntime/gcc/attribute.d
! 9222dbdc66eb733dd8f47844746e3052  libphobos/libdruntime/gcc/attributes.d
  117ff4ca7385e902ac7b5e7cb7a51a09  libphobos/libdruntime/gcc/backtrace.d
  dfc765dc63152343d6f21b706cd4d1e4  libphobos/libdruntime/gcc/builtins.d
  47a2adda2f32565aec9abda4f8039c13  libphobos/libdruntime/gcc/config.d.in
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 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
--- 145713,145719 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 2a21348bda09f7c3d6648c8e44d493d5  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** f372af73db4ac0ad88e43199e1f29e08  libstd
*** 145606,145643 ****
  66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
  99a3cff2df96180120774fefa11f050e  libstdc++-v3/config.h.in
  2345fca717fc01f8c1494241d6a88e94  libstdc++-v3/config/abi/compatibility.h
! 0be6fea010f86e442ad030f82858fb73  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
  2fa4fcaa6f3741829087f83dae5d4873  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
! 3564a8198041594b04f35e13701fdb53  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
! 13f901be7333a2072916659b04e88e8d  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
! d45eb5f70812c01e9571ca948c4da8cd  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
! 0feacae434c67857f81d494f83cf3851  libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
! 5dca274dfeba1c1c125014f358dc6b89  libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
! 97784a5e669593e12f36ff38c1ed28cd  libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
  61308215d393f11169ace76935f2b034  libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt
  725325d7b24195d1e6374ce4e24afdb0  libstdc++-v3/config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt
  907face03890009654193fc67fa4e427  libstdc++-v3/config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt
  1a34bda2bb4c3a576335343c0a4a9377  libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt
! f774a16511cbcae3a91bcc69a897bbbc  libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
! f774a16511cbcae3a91bcc69a897bbbc  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
! 17953e287212d0ce3ce671249e970345  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
! 9da62377eceb23bf6381d5e3ebca8c57  libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
! 3ed9ad145022e2626ac8fa1f90db2d12  libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt
! c2f539d78b1b45f6e47b9f9aa356a5ef  libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
  cc65678819ec7ff06eaeed8b1a5455eb  libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
! b956a0c1d4368f5175f30b8da133a56e  libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
! abc6f4755fae8c6e8f45ce5fee798654  libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
! 89e05baf29eb88995a099d75a8ea5d6e  libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
! 315db7caf5823f4451b226448fb27662  libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
! 0feacae434c67857f81d494f83cf3851  libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
! 103fca270597909e88cb192ff00ca556  libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
! 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
--- 145749,145786 ----
  66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
  99a3cff2df96180120774fefa11f050e  libstdc++-v3/config.h.in
  2345fca717fc01f8c1494241d6a88e94  libstdc++-v3/config/abi/compatibility.h
! e20bd1e569cbed0f20b871f0dc077dfb  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
  2fa4fcaa6f3741829087f83dae5d4873  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
! 94ff0c7d7481d472e4c6883b4f69c7cb  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
! 4f7e2ff60d0312be902f23e4ebfcfb34  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
! dc3a202210fcd83d8a77cd318ae17078  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
! 94ff0c7d7481d472e4c6883b4f69c7cb  libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
! e750d4969026c40d5ce10ad99afd6dbd  libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
! 6e6c1eead73ca80819125405cabfaf11  libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
  61308215d393f11169ace76935f2b034  libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt
  725325d7b24195d1e6374ce4e24afdb0  libstdc++-v3/config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt
  907face03890009654193fc67fa4e427  libstdc++-v3/config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt
  1a34bda2bb4c3a576335343c0a4a9377  libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt
! 9a04ca5f495f5b839d9129d6473005a2  libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
! 9a04ca5f495f5b839d9129d6473005a2  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
! cf4a8918ae6c49b5967aa7c5e4897837  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
! 8cf807bf8185222817c03048dca87138  libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
! fb80ad506b2c99caa0f3adb56c8a8858  libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt
! ce3d581aad7598d32c88c3cf30a0885d  libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
  cc65678819ec7ff06eaeed8b1a5455eb  libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
! f7e6afd3479309813624b96ba52e9f11  libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
! 71369f5109eaa4a0d162cbf9ccd01d5b  libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
! 5f364df069edac29665d970025b9c919  libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
! 10563e88eb721b7ac78bf0c13d91f351  libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
! 94ff0c7d7481d472e4c6883b4f69c7cb  libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
! 011b59b39511c3b235e29d5f5062edce  libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
! 64c7ddb3ee44b0d3bc4a83995c1f0d96  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
! a24cad29110b2f3a3c21694199f177c4  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
*************** d7249eb4d31bd107d0b09ea3c80cb723  libstd
*** 145894,145900 ****
  1d86b338a316806c80b250eb132ac6dd  libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
! 428acfe2f4e5fcc5a4735d2bf0ff8742  libstdc++-v3/doc/html/index.html
  da8ef3dbcb662f961907eacee627f1e5  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
  e8962e30cf090d22cd4186a86105e4f3  libstdc++-v3/doc/html/manual/api.html
--- 146037,146043 ----
  1d86b338a316806c80b250eb132ac6dd  libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
! 1ee0763cec1ed7370868bbd953b92b71  libstdc++-v3/doc/html/index.html
  da8ef3dbcb662f961907eacee627f1e5  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
  e8962e30cf090d22cd4186a86105e4f3  libstdc++-v3/doc/html/manual/api.html
*************** ed880ae9a474601ab139b1f243cbad76  libstd
*** 145983,145995 ****
  97528cc0fac9c8996900de2fb8801324  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
  b2b541e52af05c96f0b4e36d035d6ed9  libstdc++-v3/doc/html/manual/unordered_associative.html
! 8aa9b7bfbe5a730701f97de49e583432  libstdc++-v3/doc/html/manual/using.html
  67af75428c4b0fee1420d75c75421ab6  libstdc++-v3/doc/html/manual/using_concurrency.html
  f8898e59cc7155a01a17f15a3b853c30  libstdc++-v3/doc/html/manual/using_dual_abi.html
  11dd55e39edb8313b5563e53067c431e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  292c099f5758d0403ebf7dceea801138  libstdc++-v3/doc/html/manual/using_exceptions.html
  91385600a9fbb5f8f29c666917403807  libstdc++-v3/doc/html/manual/using_headers.html
! 96161800f562d3ac67970d58f6ff161f  libstdc++-v3/doc/html/manual/using_macros.html
  e8b86abd99dc9893dfa1bb7533fdc23d  libstdc++-v3/doc/html/manual/using_namespaces.html
  13c8dfb643338ee235bfc84a29e5d3f2  libstdc++-v3/doc/html/manual/utilities.html
  3d34cd999f3bf3133e40f554b6ba525e  libstdc++-v3/doc/xml/api.xml
--- 146126,146138 ----
  97528cc0fac9c8996900de2fb8801324  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
  b2b541e52af05c96f0b4e36d035d6ed9  libstdc++-v3/doc/html/manual/unordered_associative.html
! a0918c604251ab7a418068faac6a8a4c  libstdc++-v3/doc/html/manual/using.html
  67af75428c4b0fee1420d75c75421ab6  libstdc++-v3/doc/html/manual/using_concurrency.html
  f8898e59cc7155a01a17f15a3b853c30  libstdc++-v3/doc/html/manual/using_dual_abi.html
  11dd55e39edb8313b5563e53067c431e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  292c099f5758d0403ebf7dceea801138  libstdc++-v3/doc/html/manual/using_exceptions.html
  91385600a9fbb5f8f29c666917403807  libstdc++-v3/doc/html/manual/using_headers.html
! 106d80bfa1c180106be5dee024f8ea7b  libstdc++-v3/doc/html/manual/using_macros.html
  e8b86abd99dc9893dfa1bb7533fdc23d  libstdc++-v3/doc/html/manual/using_namespaces.html
  13c8dfb643338ee235bfc84a29e5d3f2  libstdc++-v3/doc/html/manual/utilities.html
  3d34cd999f3bf3133e40f554b6ba525e  libstdc++-v3/doc/xml/api.xml
*************** f585d9116a5f533123166622818c4252  libstd
*** 146228,146241 ****
  cbd1ce02ad465e7f996671f14eee4ec9  libstdc++-v3/doc/xml/manual/support.xml
  1c7dc4c765a2c1e49fdeec9af9ce0274  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! a37a16c363434f2efb6d67e75b4b680c  libstdc++-v3/doc/xml/manual/using.xml
  5245e9347bf064c48690e1ad9213f1ba  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  bc0412a9556e7ed39afe5103b73f1f26  libstdc++-v3/doc/xml/manual/utilities.xml
  7b70f0f77a50b976605aef6dbeb1e282  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! 8f0725044de9a77db1cdf652abb0da3d  libstdc++-v3/include/Makefile.am
! b1d897b7ae738755cc0a607f16e2d697  libstdc++-v3/include/Makefile.in
  c43a95ade3f229bbf11e4df12e566d23  libstdc++-v3/include/backward/auto_ptr.h
  a5311733ecd17a8f51066f4a2a351abd  libstdc++-v3/include/backward/backward_warning.h
  5c3fe230b3089d4b9c58b4a86af57005  libstdc++-v3/include/backward/binders.h
--- 146371,146384 ----
  cbd1ce02ad465e7f996671f14eee4ec9  libstdc++-v3/doc/xml/manual/support.xml
  1c7dc4c765a2c1e49fdeec9af9ce0274  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 18bdb7b40d375f87d59fb6af70b9af13  libstdc++-v3/doc/xml/manual/using.xml
  5245e9347bf064c48690e1ad9213f1ba  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  bc0412a9556e7ed39afe5103b73f1f26  libstdc++-v3/doc/xml/manual/utilities.xml
  7b70f0f77a50b976605aef6dbeb1e282  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! 718f0fc3c45ceee0c5e9d7b45e20a628  libstdc++-v3/include/Makefile.am
! e684b9ba03589bc5e5085f9a316e5f92  libstdc++-v3/include/Makefile.in
  c43a95ade3f229bbf11e4df12e566d23  libstdc++-v3/include/backward/auto_ptr.h
  a5311733ecd17a8f51066f4a2a351abd  libstdc++-v3/include/backward/backward_warning.h
  5c3fe230b3089d4b9c58b4a86af57005  libstdc++-v3/include/backward/binders.h
*************** e77032281bd301430e499d5bb46db4a1  libstd
*** 146288,146296 ****
  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
! 5355ab483dbe848e187a9e1f0d9a1e81  libstdc++-v3/include/bits/hashtable_policy.h
! 95eb0b92d5c9a8ddf313e412fee97770  libstdc++-v3/include/bits/indirect.h
  286812f00b93c6b48c444cf624dc6983  libstdc++-v3/include/bits/indirect_array.h
  02fc060959019f916137494b7725ead3  libstdc++-v3/include/bits/intcmp.h
  06b4263267a102d1ab00cc2f9647964c  libstdc++-v3/include/bits/invoke.h
--- 146431,146439 ----
  2d704693130242bf3c1c9fbf9bfa98cf  libstdc++-v3/include/bits/funcwrap.h
  a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
! 4fb739d7e430219a766af6d620d6b853  libstdc++-v3/include/bits/hashtable.h
! 07a51a3027551b0c542b2b86f6c59b13  libstdc++-v3/include/bits/hashtable_policy.h
! 1fb540db8e28ddacb92e252146834310  libstdc++-v3/include/bits/indirect.h
  286812f00b93c6b48c444cf624dc6983  libstdc++-v3/include/bits/indirect_array.h
  02fc060959019f916137494b7725ead3  libstdc++-v3/include/bits/intcmp.h
  06b4263267a102d1ab00cc2f9647964c  libstdc++-v3/include/bits/invoke.h
*************** ab1a2667b1fb6a0843b439656cb56a71  libstd
*** 146320,146333 ****
  2cf34f1c708dc8a68a59f26be37aa2b2  libstdc++-v3/include/bits/ostream.h
  ad86ba065860cc280af4d463bd5ac78e  libstdc++-v3/include/bits/ostream.tcc
  4960be4248870cda60d2fbc53fc26da1  libstdc++-v3/include/bits/ostream_insert.h
  2162ba15f1b30f3a9f495249af486aba  libstdc++-v3/include/bits/out_ptr.h
  70fb2f8fab4692fafd8fa11d91d01edd  libstdc++-v3/include/bits/parse_numbers.h
  6a72ede97c52245c80e7794718ee0021  libstdc++-v3/include/bits/postypes.h
  244c55c9dbbe4afb3b877765deccda78  libstdc++-v3/include/bits/predefined_ops.h
  075f43aeeb1c6dd2ab940ff22b8bd93c  libstdc++-v3/include/bits/ptr_traits.h
  e9057d3a64660954bf7134e2fb721b51  libstdc++-v3/include/bits/quoted_string.h
  b745abd5614b31045999aba98b3d30c4  libstdc++-v3/include/bits/random.h
! 31a18e44e4d45cb7f7b8463eed742716  libstdc++-v3/include/bits/random.tcc
  3a5b2c90b69b348c27562cf65e40b23f  libstdc++-v3/include/bits/range_access.h
  0b2a4a5a8552148817067fd04c0dc935  libstdc++-v3/include/bits/ranges_algo.h
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
--- 146463,146478 ----
  2cf34f1c708dc8a68a59f26be37aa2b2  libstdc++-v3/include/bits/ostream.h
  ad86ba065860cc280af4d463bd5ac78e  libstdc++-v3/include/bits/ostream.tcc
  4960be4248870cda60d2fbc53fc26da1  libstdc++-v3/include/bits/ostream_insert.h
+ 64d102a93753ab03d804450e77aceec5  libstdc++-v3/include/bits/ostream_print.h
  2162ba15f1b30f3a9f495249af486aba  libstdc++-v3/include/bits/out_ptr.h
  70fb2f8fab4692fafd8fa11d91d01edd  libstdc++-v3/include/bits/parse_numbers.h
  6a72ede97c52245c80e7794718ee0021  libstdc++-v3/include/bits/postypes.h
  244c55c9dbbe4afb3b877765deccda78  libstdc++-v3/include/bits/predefined_ops.h
+ 7e3070cf0b0d26b8fd48d8c0d9e76690  libstdc++-v3/include/bits/print.h
  075f43aeeb1c6dd2ab940ff22b8bd93c  libstdc++-v3/include/bits/ptr_traits.h
  e9057d3a64660954bf7134e2fb721b51  libstdc++-v3/include/bits/quoted_string.h
  b745abd5614b31045999aba98b3d30c4  libstdc++-v3/include/bits/random.h
! 28c93e0aed9526e3f5092fe17092e92a  libstdc++-v3/include/bits/random.tcc
  3a5b2c90b69b348c27562cf65e40b23f  libstdc++-v3/include/bits/range_access.h
  0b2a4a5a8552148817067fd04c0dc935  libstdc++-v3/include/bits/ranges_algo.h
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
*************** b136a78972f27620821fe613b75e98f4  libstd
*** 146362,146368 ****
  88d760c089b547a8927a318c9e465fdb  libstdc++-v3/include/bits/simd_mask.h
  55677796a9d03b2fcab6c8eb9866efcb  libstdc++-v3/include/bits/simd_mask_reductions.h
  fce0564b07dd0ef981a64c683bfadc5a  libstdc++-v3/include/bits/simd_reductions.h
! c7f9594bc443a1c65a94eed33fc970bf  libstdc++-v3/include/bits/simd_vec.h
  86eb307e0886ccc75570d22c33f78b3a  libstdc++-v3/include/bits/simd_x86.h
  c7864edd44ec162778d0cb89b0129937  libstdc++-v3/include/bits/slice_array.h
  78e195bd62ca638897505b698c3193de  libstdc++-v3/include/bits/specfun.h
--- 146507,146513 ----
  88d760c089b547a8927a318c9e465fdb  libstdc++-v3/include/bits/simd_mask.h
  55677796a9d03b2fcab6c8eb9866efcb  libstdc++-v3/include/bits/simd_mask_reductions.h
  fce0564b07dd0ef981a64c683bfadc5a  libstdc++-v3/include/bits/simd_reductions.h
! df7a8f19d3d4e47ff3d0c5a7050c122a  libstdc++-v3/include/bits/simd_vec.h
  86eb307e0886ccc75570d22c33f78b3a  libstdc++-v3/include/bits/simd_x86.h
  c7864edd44ec162778d0cb89b0129937  libstdc++-v3/include/bits/slice_array.h
  78e195bd62ca638897505b698c3193de  libstdc++-v3/include/bits/specfun.h
*************** b1052f564f9839906c0d1f1f7a3296ea  libstd
*** 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
--- 146561,146575 ----
  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
! 6c46656b0e1510bafbc3560eb85608e0  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
! 6ecbce56ea40753f7734010ae4c7af71  libstdc++-v3/include/bits/version.def
! 89c1b31b377a5a489af32ef8a2bf6b20  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
*************** c77dc30670dabe5b153a1ec91a3d9060  libstd
*** 146460,146468 ****
  a443277949254779744969a5bf96432d  libstdc++-v3/include/c_compatibility/signal.h
  a507b3dc4634a3bd5d51343052e1ebe6  libstdc++-v3/include/c_compatibility/stdarg.h
  e8f0a5b02e79903187f6f348af2a2914  libstdc++-v3/include/c_compatibility/stdatomic.h
! c59b5e0eca126fcdb5d60553d7306e06  libstdc++-v3/include/c_compatibility/stdbit.h
  99516ad099034ac6c4ec580f5408359f  libstdc++-v3/include/c_compatibility/stdbool.h
! d5222c91c34206ac7e1ca63d61174c41  libstdc++-v3/include/c_compatibility/stdckdint.h
  415079eb2aa8b178397285b36058ca80  libstdc++-v3/include/c_compatibility/stddef.h
  eaf1c04b2c41142667cd5df309803e5a  libstdc++-v3/include/c_compatibility/stdint.h
  635893dd66c939a24388499c92468689  libstdc++-v3/include/c_compatibility/stdio.h
--- 146605,146613 ----
  a443277949254779744969a5bf96432d  libstdc++-v3/include/c_compatibility/signal.h
  a507b3dc4634a3bd5d51343052e1ebe6  libstdc++-v3/include/c_compatibility/stdarg.h
  e8f0a5b02e79903187f6f348af2a2914  libstdc++-v3/include/c_compatibility/stdatomic.h
! c2f557a28c1227cff940c6918cba6832  libstdc++-v3/include/c_compatibility/stdbit.h
  99516ad099034ac6c4ec580f5408359f  libstdc++-v3/include/c_compatibility/stdbool.h
! 3613efbca3078025a0b386df3f22536a  libstdc++-v3/include/c_compatibility/stdckdint.h
  415079eb2aa8b178397285b36058ca80  libstdc++-v3/include/c_compatibility/stddef.h
  eaf1c04b2c41142667cd5df309803e5a  libstdc++-v3/include/c_compatibility/stdint.h
  635893dd66c939a24388499c92468689  libstdc++-v3/include/c_compatibility/stdio.h
*************** f1c08a4c9a736109edfd3c39c60c1669  libstd
*** 146978,146989 ****
  085ec2d298f0be079b303330b81b05d1  libstdc++-v3/include/std/bit
  2f7194edee13481e4e56129caf4cc769  libstdc++-v3/include/std/bitset
  221c225c0ffb7ac1a214c4da510bfdcc  libstdc++-v3/include/std/charconv
! 628d0c85cbd1da341eb2fa74ae7ba30c  libstdc++-v3/include/std/chrono
  6250fdc57cc9fcf4c5cc699808a8871f  libstdc++-v3/include/std/codecvt
  841a79fbef033cbe8ca8c554dc66d5b9  libstdc++-v3/include/std/complex
  d2be6ad28181eee2feab5cac0a1cf141  libstdc++-v3/include/std/concepts
  6a29620511421350fff096067c3ca0da  libstdc++-v3/include/std/condition_variable
! eaba00749e45860b0ef18ff847c1a79d  libstdc++-v3/include/std/contracts
  30926456f62b01c212f18e128fa8f543  libstdc++-v3/include/std/coroutine
  f945d16289e71c13744e7d9177de9ccc  libstdc++-v3/include/std/debugging
  7d736af3f0c3ef350561362e2e73c5a6  libstdc++-v3/include/std/deque
--- 147123,147134 ----
  085ec2d298f0be079b303330b81b05d1  libstdc++-v3/include/std/bit
  2f7194edee13481e4e56129caf4cc769  libstdc++-v3/include/std/bitset
  221c225c0ffb7ac1a214c4da510bfdcc  libstdc++-v3/include/std/charconv
! 8aecfb2ad2f4278a068b6cb73b1a76dc  libstdc++-v3/include/std/chrono
  6250fdc57cc9fcf4c5cc699808a8871f  libstdc++-v3/include/std/codecvt
  841a79fbef033cbe8ca8c554dc66d5b9  libstdc++-v3/include/std/complex
  d2be6ad28181eee2feab5cac0a1cf141  libstdc++-v3/include/std/concepts
  6a29620511421350fff096067c3ca0da  libstdc++-v3/include/std/condition_variable
! 687bcecfb8a35508f2a7025bad9ddade  libstdc++-v3/include/std/contracts
  30926456f62b01c212f18e128fa8f543  libstdc++-v3/include/std/coroutine
  f945d16289e71c13744e7d9177de9ccc  libstdc++-v3/include/std/debugging
  7d736af3f0c3ef350561362e2e73c5a6  libstdc++-v3/include/std/deque
*************** a8e79cb6c591611cd6113eed355c3de6  libstd
*** 146992,146998 ****
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  f004e380db68bad2f1a8548323345a5c  libstdc++-v3/include/std/flat_map
  b384f6e8eb77f0d5747534b3ed9a89cb  libstdc++-v3/include/std/flat_set
! 00cc3e755529bb07a8b2988bde76f777  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
--- 147137,147143 ----
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  f004e380db68bad2f1a8548323345a5c  libstdc++-v3/include/std/flat_map
  b384f6e8eb77f0d5747534b3ed9a89cb  libstdc++-v3/include/std/flat_set
! e67d123284fe769b62e800f875aa0f8b  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
*************** b9368104d884bddd988db2b9e69ab485  libstd
*** 147013,147025 ****
  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  libstdc++-v3/include/std/optional
! 3df64aa3700444d67ce1d91e4e3d223a  libstdc++-v3/include/std/ostream
! 3af02266080ddef7f33d9c7aeb250aa7  libstdc++-v3/include/std/print
  879fbfbd4d520dc45943e6e1c095a2e7  libstdc++-v3/include/std/queue
  e21a300c90cd953e16f037708f0e242a  libstdc++-v3/include/std/random
  55340fcae30b7b54a32cdd42b4679f6c  libstdc++-v3/include/std/ranges
--- 147158,147170 ----
  604aad9d515fc3a516aee2ae89334b40  libstdc++-v3/include/std/mdspan
  5439ce157f7c11ab4eddd8c04799fea4  libstdc++-v3/include/std/memory
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
! b0cd4481a8197a3b2599bc50edc81314  libstdc++-v3/include/std/meta
  6042ceb95043702de02a8354f2507317  libstdc++-v3/include/std/mutex
  98a3e25011c5fb2383b3824b1c349d43  libstdc++-v3/include/std/numbers
  6a44514a47e24df75405dc1d397afc69  libstdc++-v3/include/std/numeric
! bb6f74e073b9b1eb98dbac0bdbff11d1  libstdc++-v3/include/std/optional
! bcf1c0b79e2efd9cd34763d368f40966  libstdc++-v3/include/std/ostream
! e24e6fab84ab94b060b3c31ebc39b264  libstdc++-v3/include/std/print
  879fbfbd4d520dc45943e6e1c095a2e7  libstdc++-v3/include/std/queue
  e21a300c90cd953e16f037708f0e242a  libstdc++-v3/include/std/random
  55340fcae30b7b54a32cdd42b4679f6c  libstdc++-v3/include/std/ranges
*************** c3455b8d87dcefd65c7fdcd24e4ce3a4  libstd
*** 147239,147246 ****
  bd81737521cde091f96cadb5e3de6b6f  libstdc++-v3/scripts/run_doxygen
  8237637ba2756b818d215e38c3e69e19  libstdc++-v3/scripts/testsuite_flags.in
  6e3445b3780c05b37f42c740c90e740d  libstdc++-v3/scripts/update_release_branch.sh
! 7b97b1759805ebdc585576aeb0ef4d48  libstdc++-v3/src/Makefile.am
! 56842829179db773783f8c14082b56e8  libstdc++-v3/src/Makefile.in
  1db8eb15f1727781feffe391e20932e2  libstdc++-v3/src/c++11/Makefile.am
  3ea8e5edc8c8af41c26f5b1dadb82964  libstdc++-v3/src/c++11/Makefile.in
  4b1e2d0d6f66715f093727ffc92a4879  libstdc++-v3/src/c++11/assert_fail.cc
--- 147384,147391 ----
  bd81737521cde091f96cadb5e3de6b6f  libstdc++-v3/scripts/run_doxygen
  8237637ba2756b818d215e38c3e69e19  libstdc++-v3/scripts/testsuite_flags.in
  6e3445b3780c05b37f42c740c90e740d  libstdc++-v3/scripts/update_release_branch.sh
! bf01f7a9ee664355385ee8835f81ea67  libstdc++-v3/src/Makefile.am
! c6775fdaeaae5806cc843848278c660d  libstdc++-v3/src/Makefile.in
  1db8eb15f1727781feffe391e20932e2  libstdc++-v3/src/c++11/Makefile.am
  3ea8e5edc8c8af41c26f5b1dadb82964  libstdc++-v3/src/c++11/Makefile.in
  4b1e2d0d6f66715f093727ffc92a4879  libstdc++-v3/src/c++11/assert_fail.cc
*************** fbb127f006c65ae37d591c627cc6235c  libstd
*** 147344,147354 ****
  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
--- 147489,147500 ----
  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
! 3b693644866857e3152dd11055b1cbd5  libstdc++-v3/src/c++20/Makefile.am
! e5a726de140540a59e2007eceae3acd1  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
+ 950ea458edaf556ab767e8e46c180ee3  libstdc++-v3/src/c++20/format-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
*************** c2bd27af25e57adce5807e0f01a2d0dc  libstd
*** 147356,147365 ****
  5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
  091b29fc9294e1f1eceaf85a3c578f9a  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
! ab4a3b60e85cb9a17d5363c568255e62  libstdc++-v3/src/c++23/Makefile.am
! ba1de75ac9c1bb7d2506c503fe17708a  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
! 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
--- 147502,147511 ----
  5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
  091b29fc9294e1f1eceaf85a3c578f9a  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
! 7c8cb4e8c454557197d2d63ced1992bb  libstdc++-v3/src/c++23/Makefile.am
! b00f9570f9f027f375c731351ae64403  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
! 8bb7a9d09cbda4a95e3df6b44b437f23  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
*************** c5c26a31e7b679312f2784a6392935ea  libstd
*** 147923,147933 ****
  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
--- 148069,148079 ----
  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
! 7355d91818a4103ae0d02ed116ca8469  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
! 40b819222eee937a9063c9e962829b5f  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
*** 148153,148161 ****
  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
--- 148299,148307 ----
  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
! d3f286838c2e6cde9335959dc86d5375  libstdc++-v3/testsuite/20_util/function_ref/assign.cc
  a14986e98d1dd97abc2ff044b76b6ec5  libstdc++-v3/testsuite/20_util/function_ref/call.cc
! d3fb86addcd2698986c24055a86ef525  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
*************** bd002783d2797ae2fe77637e6c9e78fb  libstd
*** 148228,148233 ****
--- 148374,148381 ----
  8c085de1706eed3dddd8146f71e5d402  libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc
  b299881c5f8a46c9954c9cfffbb15437  libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc
  c1400d8b4ae4f8afba2ea1d6dcc3cd89  libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc
+ 7bfe235a9cb3466ef89c9d3bb131d063  libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access.cc
+ eb81cddbee2c9e7b41528f9e442c9931  libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access_neg.cc
  41e2e851dddbcba3986d1b2501e6b2d1  libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc
  cb402ab4d04ad8a42129fe8c1fd31beb  libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc
  908f810db418242226e02776bf37b8fe  libstdc++-v3/testsuite/20_util/integral_constant/requirements/constexpr_data.cc
*************** a9796d4b3ac5d729833e0498453d6243  libstd
*** 148602,148607 ****
--- 148750,148756 ----
  9ba133981953c962fb1fcd5bb731614d  libstdc++-v3/testsuite/20_util/optional/cons/trivial.cc
  1542bbeb4d4876bd3309c16534687ce5  libstdc++-v3/testsuite/20_util/optional/cons/value.cc
  84460611236dc416c6d0c78c15aa346c  libstdc++-v3/testsuite/20_util/optional/cons/value_neg.cc
+ bcb5879510725c2f266358a502eb988e  libstdc++-v3/testsuite/20_util/optional/constexpr/124910.cc
  bdaab2c7a277b9ab7e3419b9414abbd3  libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
  c90cd072fff0310ee397532e79baeb6c  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
  0b27c9f88f4036573454e8531038b4ee  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/default.cc
*************** bcd6b1697ace00f86bb9d1240b696590  libstd
*** 153573,153578 ****
--- 153722,153728 ----
  39e746c95583b73ae0083ac8e10a847b  libstdc++-v3/testsuite/26_numerics/random/philox_engine/cons/copy.cc
  c9f93ce5f5c9e82470077e6577ea1ff0  libstdc++-v3/testsuite/26_numerics/random/philox_engine/cons/default.cc
  bbc0ac3db492f2094eb97d21360e9970  libstdc++-v3/testsuite/26_numerics/random/philox_engine/cons/seed.cc
+ 3d55d6ba1c63a4b17da30e2635b48780  libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc
  6fed4d0d5264e18ca91096cef0cb2c50  libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/equal.cc
  aa00adf50c193a2b13b2ebf5aa1f5858  libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/serialize.cc
  a8b98cfabb68398f2afafff0416479c1  libstdc++-v3/testsuite/26_numerics/random/philox_engine/requirements/constants.cc
*************** bf3b0b114ea3efdbd4365c99cdd7742b  libstd
*** 153674,153680 ****
  16e9828686b07c695b1fcdf17b2fa2e0  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc
  efcb84be5a12aa91b3606ed0a050de2f  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
  ba065f15aed902b5215a94e08fdd6eaa  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/equal.cc
! 54b97ad7ccfa51187caaa1eaefa6191c  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc
  316869129064e3da75b4d3639c05a9ff  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon_eng.cc
  5a4f033756610029c09db4bcce859646  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/inequal.cc
  47a1c582eeebb3f94b058bb87f680102  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/serialize.cc
--- 153824,153830 ----
  16e9828686b07c695b1fcdf17b2fa2e0  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc
  efcb84be5a12aa91b3606ed0a050de2f  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
  ba065f15aed902b5215a94e08fdd6eaa  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/equal.cc
! 36040d6e7b200470ea5db1dac58fa3fc  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc
  316869129064e3da75b4d3639c05a9ff  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon_eng.cc
  5a4f033756610029c09db4bcce859646  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/inequal.cc
  47a1c582eeebb3f94b058bb87f680102  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/serialize.cc
*************** e5ae0d289a7517c63e0a2f4fef5e4500  libstd
*** 155800,155806 ****
  38c73cc98fad70a5478feef038020553  libstdc++-v3/testsuite/experimental/chrono/value.cc
  a349ce69444842255098c8d346a73d0b  libstdc++-v3/testsuite/experimental/deque/erasure.cc
  188e3c11b011fe3f38bba18280fb6fcc  libstdc++-v3/testsuite/experimental/feat-char8_t.cc
! f34b212f23de6dcc11255fe68924e1e3  libstdc++-v3/testsuite/experimental/feat-cxx14.cc
  f754118861b851f83334813d834cb200  libstdc++-v3/testsuite/experimental/feat-lib-fund.cc
  6ac46eb6464e1fc5153b06aab7a7c73e  libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc
  d4f2d44c2bf1310445e4ee4991f30504  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
--- 155950,155956 ----
  38c73cc98fad70a5478feef038020553  libstdc++-v3/testsuite/experimental/chrono/value.cc
  a349ce69444842255098c8d346a73d0b  libstdc++-v3/testsuite/experimental/deque/erasure.cc
  188e3c11b011fe3f38bba18280fb6fcc  libstdc++-v3/testsuite/experimental/feat-char8_t.cc
! ab095f5264efdb539bc860140285dbff  libstdc++-v3/testsuite/experimental/feat-cxx14.cc
  f754118861b851f83334813d834cb200  libstdc++-v3/testsuite/experimental/feat-lib-fund.cc
  6ac46eb6464e1fc5153b06aab7a7c73e  libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc
  d4f2d44c2bf1310445e4ee4991f30504  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
*************** a228a2340ca9de5350db67f736edcd0b  libstd
*** 156824,156829 ****
--- 156974,156981 ----
  4e1e1bd1eb1b2db2e9f55215527ebcd0  libstdc++-v3/testsuite/std/format/debug_nonunicode.cc
  4a9e40b038da4f2b5da7c5172bf22f04  libstdc++-v3/testsuite/std/format/dynamic_format.cc
  3f84148bfc5153a2278f3c8c413dad98  libstdc++-v3/testsuite/std/format/error.cc
+ 6483a22120f0c0c4849413aa1a3ab0d1  libstdc++-v3/testsuite/std/format/fill.cc
+ 825c9732faf7acdc5e109278b625fd98  libstdc++-v3/testsuite/std/format/fill_nonunicode.cc
  6425de3f85b700ce40dd3b11d934ee43  libstdc++-v3/testsuite/std/format/format_string.cc
  6fa5a2c92632d72f763333e89659d4a5  libstdc++-v3/testsuite/std/format/formatter/112832.cc
  45280a2212e6fb520cb8b7465d640540  libstdc++-v3/testsuite/std/format/formatter/120625.cc
*************** d9708c521b612f15f943a911427b169b  libstd
*** 156856,156861 ****
--- 157008,157014 ----
  c400d0d58ad702f461b28668dc629c09  libstdc++-v3/testsuite/std/format/string.cc
  7c654edf02fc2f7793fb1f549b890993  libstdc++-v3/testsuite/std/format/string_neg.cc
  246b2e9f25648a67850193b3368e0db9  libstdc++-v3/testsuite/std/format/tuple.cc
+ 50518f97609e2ebe3b5f6363206fc2b4  libstdc++-v3/testsuite/std/memory/indirect/124890.cc
  f69347ccb773103796767f24914c4c96  libstdc++-v3/testsuite/std/memory/indirect/access.cc
  720e1b38d222c15f72ac910b92301d4a  libstdc++-v3/testsuite/std/memory/indirect/copy.cc
  82ef6f538e38c654811cb3eda65315df  libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc
diff -Nrcpad gcc-16-20260412/config/ChangeLog gcc-16-20260419/config/ChangeLog
*** gcc-16-20260412/config/ChangeLog	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/config/ChangeLog	Sun Apr 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-04-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR target/69639
+ 	* mh-cygwin: Increase to 64MB stack reserve.
+ 	* mh-mingw: Likewise.
+ 
  2026-02-04  Prachi Godbole  <pgodbole@nvidia.com>
  
  	* bootstrap-lto-locality.mk (STAGEprofile_CFLAGS): Remove
diff -Nrcpad gcc-16-20260412/config/mh-cygwin gcc-16-20260419/config/mh-cygwin
*** gcc-16-20260412/config/mh-cygwin	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/config/mh-cygwin	Sun Apr 19 22:32:05 2026
***************
*** 1,4 ****
! # Increase stack limit to a figure based on the Linux default, with 4MB added
! # as GCC turns out to need that much more to pass all the limits-* tests.
! LDFLAGS += -Wl,--stack,12582912
! BOOT_LDFLAGS += -Wl,--stack,12582912
--- 1,5 ----
! # Increase stack limit, to the same value that GCC tries to change to at
! # startup on Linux, as GCC turns out to need that much more to pass all the
! # limits-* tests.
! LDFLAGS += -Wl,--stack,67108864
! BOOT_LDFLAGS += -Wl,--stack,67108864
diff -Nrcpad gcc-16-20260412/config/mh-mingw gcc-16-20260419/config/mh-mingw
*** gcc-16-20260412/config/mh-mingw	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/config/mh-mingw	Sun Apr 19 22:32:05 2026
*************** STAGE2_CXXFLAGS += -D__USE_MINGW_ACCESS
*** 8,14 ****
  STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS
  STAGE4_CXXFLAGS += -D__USE_MINGW_ACCESS
  
! # Increase stack limit to a figure based on the Linux default, with 4MB added
! # as GCC turns out to need that much more to pass all the limits-* tests.
! LDFLAGS += -Wl,--stack,12582912
! BOOT_LDFLAGS += -Wl,--stack,12582912
--- 8,15 ----
  STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS
  STAGE4_CXXFLAGS += -D__USE_MINGW_ACCESS
  
! # Increase stack limit, to the same value that GCC tries to change to at
! # startup on Linux, as GCC turns out to need that much more to pass all the
! # limits-* tests.
! LDFLAGS += -Wl,--stack,67108864
! BOOT_LDFLAGS += -Wl,--stack,67108864
diff -Nrcpad gcc-16-20260412/contrib/ChangeLog gcc-16-20260419/contrib/ChangeLog
*** gcc-16-20260412/contrib/ChangeLog	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/contrib/ChangeLog	Sun Apr 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,19 ----
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc-changelog/git_update_version.py: Add
+ 	9df40f1f4bec855da864f535e242308ceb1cd5ad and
+ 	d5fb79718b22207253d62c92dcf8b1c16e1ea370 to ignored_commits.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc-changelog/git_update_version.py: Add
+ 	eec8da328cf1f91db302ab4cee803e269e68ad33 to ignored_commits.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc-changelog/git_update_version.py: Add
+ 	69a2c243dd2cf9f77150c0eb86dfbc0931876bc1 to ignored_commits.
+ 
  2026-03-14  Jakub Jelinek  <jakub@redhat.com>
  
  	PR other/124508
diff -Nrcpad gcc-16-20260412/contrib/gcc-changelog/git_update_version.py gcc-16-20260419/contrib/gcc-changelog/git_update_version.py
*** gcc-16-20260412/contrib/gcc-changelog/git_update_version.py	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/contrib/gcc-changelog/git_update_version.py	Sun Apr 19 22:32:05 2026
*************** ignored_commits = {
*** 50,56 ****
          '13cf22eb557eb5e3d796822247d8d4957bdb25da',
          'b40ef6e9dc096c8c19399e94947a1965258a6942',
          'e69bea9b4ccfe79efeec6e87d7d24e6350f31375',
!         '9a7da540b63e7d77e747b5cdd6fdbbd3954e28c8'}
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
--- 50,60 ----
          '13cf22eb557eb5e3d796822247d8d4957bdb25da',
          'b40ef6e9dc096c8c19399e94947a1965258a6942',
          'e69bea9b4ccfe79efeec6e87d7d24e6350f31375',
!         '9a7da540b63e7d77e747b5cdd6fdbbd3954e28c8',
!         '69a2c243dd2cf9f77150c0eb86dfbc0931876bc1',
!         'eec8da328cf1f91db302ab4cee803e269e68ad33',
!         '9df40f1f4bec855da864f535e242308ceb1cd5ad',
!         'd5fb79718b22207253d62c92dcf8b1c16e1ea370'}
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
diff -Nrcpad gcc-16-20260412/gcc/ChangeLog gcc-16-20260419/gcc/ChangeLog
*** gcc-16-20260412/gcc/ChangeLog	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/gcc/ChangeLog	Sun Apr 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,314 ----
+ 2026-04-18  Richard Sandiford  <rdsandiford@googlemail.com>
+ 
+ 	* config/aarch64/aarch64.md (SME_STATE_REGNUM): Fix a comment typo.
+ 
+ 2026-04-18  Gopi Kumar Bulusu  <gopi@sankhya.com>
+ 
+ 	PR target/103383
+ 	* config/microblaze/microblaze.md: bswaphi2: (set_attr length 8)
+ 
+ 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR c/84717
+ 	* doc/extend.texi (Decimal Float): Document d and D suffixes.
+ 	Fix index entries for decimal float suffixes.
+ 
+ 2026-04-17  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/120098
+ 	* ipa-polymorphic-call.cc (polymorphic_ctor_dtor_p): Remove
+ 	check for pure/const flags
+ 
+ 2026-04-17  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/120098
+ 	* ipa-devirt.cc (odr_type_p): Add no_derived_construction_vtables
+ 	(odr_types_ptr): Move ahead in file.
+ 	(odr_types): Move ahead in file.
+ 	(anonymous_construction_vtable_p): New function.
+ 	(mark_derived_construction_vtables): New function.
+ 	(construction_vtable_hook): New function.
+ 	(type_possibly_instantiated_p): Watch for construction vtables.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-sm.def: Add '50'.
+ 	* config/nvptx/nvptx-gen.h: Regenerate.
+ 	* config/nvptx/nvptx-gen.opt: Likewise.
+ 	* config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
+ 	* config/nvptx/nvptx.opt (-march-map=sm_50): Likewise.
+ 	* config.gcc: Likewise.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_50'.
+ 	* config/nvptx/gen-multilib-matches-tests: Extend.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
+ 	'PTX_VERSION_4_0'.
+ 	* config/nvptx/nvptx.cc (ptx_version_to_string)
+ 	(ptx_version_to_number): Adjust.
+ 	* config/nvptx/nvptx.h (TARGET_PTX_4_0): New.
+ 	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
+ 	'4.0' for 'PTX_VERSION_4_0'.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.0'.
+ 
+ 2026-04-17  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/124900
+ 	* gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop): Do
+ 	not expand to table when compiling for size.
+ 	(class crc_optimization): Update prototype of optimize_crc_loop to
+ 	include loop.
+ 	(crc_optimization::execute): Pass loop to optimize_crc_loop.
+ 
+ 2026-04-16  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm-cpus.in (cortex-m85): Allow +cdecp<n>.
+ 	* doc/invoke.texi: Document this
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124565
+ 	* config/stormy16/stormy16.cc (xstormy16_build_builtin_va_list): Set
+ 	TREE_PUBLIC on type_decl.
+ 	* config/xtensa/xtensa.cc (xtensa_build_builtin_va_list): Likewise.
+ 
+ 2026-04-16  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR target/124897
+ 	* doc/install.texi (amdgcn-amdhsa): Fix required LLVM version for
+ 	default multilib.
+ 
+ 2026-04-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/124877
+ 	* calls.cc (initialize_argument_information): Compute
+ 	signedness of the formal argument type before applying
+ 	PROMOTE_PROTOTYPES promotion.  Also apply promotion to
+ 	a smaller than int integer first member type of a
+ 	transparent union.
+ 	* target.def (promote_prototypes): Update documentation.
+ 	* doc/tm.texi: Re-generate.
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124892
+ 	* config/i386/i386.md (clz<mode>2_lzcnt_nf,
+ 	<lt_zcnt>_<mode>_nf, popcount<mode>2_nf): Emit explicit
+ 	set of (match_dup 0) to (const_int 0) without flags clobber instead of
+ 	using ix86_expand_clear.
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124891
+ 	* tree-ssa-propagate.cc
+ 	(substitute_and_fold_dom_walker::before_dom_children): Call update_stmt
+ 	in the did_replace case before calling fold_stmt.
+ 
+ 2026-04-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/122976
+ 	* tree-sra.cc (path_comparable_for_same_access): Return false if the
+ 	base is a MEM_REF with a different underlying type.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/123635
+ 	* target.h (enum bitint_ext): New.
+ 	(struct bitint_info): Change extend type from bool to enum bitint_ext
+ 	and document it.
+ 	* gimple-lower-bitint.cc (bitint_extended): Change type from bool
+ 	to enum bitint_ext.
+ 	(bitint_precision_kind): Change bitint_extended to bitint_ext_partial
+ 	from bitint_ext_full if limb_mode is the same as abi_limb_mode.
+ 	(bitint_large_huge::limb_access_type): For
+ 	bitint_extended == bitint_ext_full allow access to the most
+ 	significant limb solely with padding bits if present.
+ 	(bitint_large_huge::lower_mergeable_stmt): Handle
+ 	bitint_extended == bitint_ext_full extension if needed.
+ 	(bitint_large_huge::lower_muldiv_stmt): Likewise.
+ 	(bitint_large_huge::lower_float_conv_stmt): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_bitint_type_info): Set
+ 	info->extended to bitint_ext_undef rather than false.
+ 	* config/arm/arm.cc (arm_bitint_type_info): Set
+ 	info->extended to bitint_ext_full rather than true.
+ 	* config/i386/i386.cc (ix86_bitint_type_info): Set
+ 	info->extended to bitint_ext_undef rather than false.
+ 	* config/loongarch/loongarch.cc (loongarch_bitint_type_info): Set
+ 	info->extended to bitint_ext_partial rather than true.
+ 	* config/riscv/riscv.cc (riscv_bitint_type_info): Set
+ 	info->extended to bitint_ext_full rather than true.
+ 	* config/s390/s390.cc (s390_bitint_type_info): Likewise.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/117133
+ 	PR c++/124768
+ 	PR c++/124773
+ 	* doc/trouble.texi (Linkage in Anonymous Namespaces): Remove.
+ 
+ 2026-04-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386.cc
+ 	(x86_64_preserve_none_int_parameter_registers): Replace
+ 	ix86_function_value_regno_p with ix86_function_arg_regno_p in
+ 	comments.
+ 
+ 2026-04-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (armagicpu): New.
+ 	* config/aarch64/aarch64-tune.md: Renegerate
+ 	* doc/invoke.texi: Document it.
+ 
+ 2026-04-14  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/124809
+ 	* value-relation.cc (equiv_oracle::equiv_oracle): Allocate lhs
+ 	equivalence bitmap.
+ 	(relation_oracle::record): Check if LHS has already created an
+ 	equivalence record.
+ 	* value-relation.h (relation_oracle::relation_oracle): New.
+ 	(relation_oracle::m_lhs_equiv_set_p): New.
+ 
+ 2026-04-14  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/123102
+ 	* config/arm/arm.md (*cmp_ite0): Apply stricter checks on the
+ 	comparison mode.
+ 	(*cmp_ite1, *cmp_and, *cmp_ior): Likewise.
+ 
+ 2026-04-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/124777
+ 	* ipa-cp.h (ipacp_value_safe_for_type): Declare.
+ 	* ipa-cp.cc (ipacp_value_safe_for_type): Make public.
+ 	* ipa-prop.cc (ipa_set_jf_cst_copy): Fix comment.
+ 	(ipa_convert_prop_cst_jf): New function.
+ 	(update_jump_functions_after_inlining): Handle the constant to
+ 	pass-through case by calling ipa_convert_prop_cst_jf.
+ 
+ 2026-04-14  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.opt.urls: Regenerate.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124875
+ 	* tree-ssa-pre.cc (prefer): Also compare TBAA set and base_set.
+ 	Refactor computing the final prefered expression, do early outs
+ 	and allow same prefered expressions.
+ 	(sorted_array_from_bitmap_set): Fix thinko that prevented
+ 	the last expression in the set of being excluded.
+ 
+ 2026-04-14  Soumya AR  <soumyaa@nvidia.com>
+ 	    Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config.gcc: Add aarch64-narrow-gp-writes.o.
+ 	* config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert
+ 	pass_narrow_gp_writes before pass_cleanup_barriers.
+ 	* config/aarch64/aarch64-protos.h (make_pass_narrow_gp_writes): Declare.
+ 	* config/aarch64/aarch64-tuning-flags.def
+ 	(AARCH64_EXTRA_TUNING_OPTION): Add NARROW_GP_WRITES.
+ 	* config/aarch64/aarch64.opt (mnarrow-gp-writes): New option.
+ 	* config/aarch64/t-aarch64: Add aarch64-narrow-gp-writes.o rule.
+ 	* config/aarch64/tuning_models/olympus.h: Add
+ 	AARCH64_EXTRA_TUNE_NARROW_GP_WRITES to tune_flags.
+ 	* doc/invoke.texi: Document -mnarrow-gp-writes.
+ 	* config/aarch64/aarch64-narrow-gp-writes.cc: New file.
+ 
+ 2026-04-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124826
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_load): Look through
+ 	BIT_FIELD_REF with zero bit offset.
+ 
+ 2026-04-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* cgraphunit.cc (process_symver_attribute): Fix comment typo,
+ 	bintuils -> binutils.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124868
+ 	* gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
+ 	Do not diagnose returns in blocks not dominated by the PHI.
+ 	(find_implicit_erroneous_behavior): Do two sweeps over PHIs,
+ 	first for NULL dereferences and then for local address returns.
+ 
+ 2026-04-14  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	Revert:
+ 	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-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/124876
+ 	* config/i386/i386.cc (ix86_zero_call_used_regs): Zero ZMM16-31
+ 	if needed.
+ 
+ 2026-04-13  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	Revert:
+ 	2025-06-30  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/109116
+ 	* config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT.
+ 	(vsx_disassemble_pair): Expand into a vector register sized subreg.
+ 	(mma_disassemble_acc): Likewise.
+ 	(*vsx_disassemble_pair): Delete.
+ 	(*mma_disassemble_acc): Likewise.
+ 
+ 2026-04-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/124700
+ 	* cgraph.cc (cgraph_node::is_clone_of): New method, determines
+ 	whether a node is a descendant of another in the clone tree.
+ 	* cgraph.h (struct cgraph_node): Add decl of is_clone_of.
+ 	* cgraphbuild.cc (mark_address): Fix reference creation for
+ 	cloned callback functions.
+ 
+ 2026-04-13  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/124710
+ 	* config/i386/sse.md (iptrps2qq): New mode attribute for
+ 	ps2qq Intel syntax memory operand size override.
+ 	(avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
+ 	Use %<iptrps2qq>1 in Intel syntax to emit qword ptr for V2DI (128-bit)
+ 	memory operands.
+ 	(avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
+ 	Use %q1 in Intel syntax to emit qword ptr for scalar double memory
+ 	operands.
+ 	(avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
+ 	Use %k1 in Intel syntax to emit dword ptr for scalar single memory
+ 	operands.
+ 
  2026-04-11  Christopher Albert  <albert@tugraz.at>
  
  	PR fortran/93554
diff -Nrcpad gcc-16-20260412/gcc/DATESTAMP gcc-16-20260419/gcc/DATESTAMP
*** gcc-16-20260412/gcc/DATESTAMP	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/gcc/DATESTAMP	Sun Apr 19 22:32:05 2026
***************
*** 1 ****
! 20260412
--- 1 ----
! 20260419
diff -Nrcpad gcc-16-20260412/gcc/ada/ChangeLog gcc-16-20260419/gcc/ada/ChangeLog
*** gcc-16-20260412/gcc/ada/ChangeLog	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/gcc/ada/ChangeLog	Sun Apr 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,47 ----
+ 2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/107392
+ 	* sem_res.adb: Add clauses for Ttypes.
+ 	(Resolve.Patch_Up_Value): Do not try to convert real literals that
+ 	do not fit in Universal_Integer.
+ 
+ 2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/107391
+ 	* urealp.adb (Decimal_Exponent_Hi): Check that the denominator is
+ 	in range before invoking UI_To_Int on it, and cope with failure.
+ 	(Decimal_Exponent_Lo): Likewise.
+ 
+ 2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/105212
+ 	* exp_aggr.adb (Build_Array_Aggr_Code): If the aggregate comes from
+ 	source, call Set_Referenced_Modified on the target.
+ 
+ 2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/87170
+ 	* sem_res.adb (Resolve_String_Literal): Copy Comes_From_Source from
+ 	the string literal to the character literals.
+ 
+ 2026-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/95452
+ 	* libgnat/g-heasor.adb (Sort.Sift): Add guard against overflow.
+ 	* libgnat/g-hesorg.adb (Sort.Sift): Likewise.
+ 	* libgnat/g-hesora.adb (Sort.Sift): Likewise.  Restore consistency.
+ 
+ 2026-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/77535
+ 	* libgnat/s-pehage.adb (New_Word): Rebase the input.
+ 
+ 2026-04-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/124836
+ 	* adaint.c [__MINGW32__]: Do not include mingw32.h twice, and also
+ 	include sys/param.h.
+ 
  2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	PR other/124784
diff -Nrcpad gcc-16-20260412/gcc/ada/exp_aggr.adb gcc-16-20260419/gcc/ada/exp_aggr.adb
*** gcc-16-20260412/gcc/ada/exp_aggr.adb	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/gcc/ada/exp_aggr.adb	Sun Apr 19 22:32:05 2026
*************** package body Exp_Aggr is
*** 2026,2031 ****
--- 2026,2041 ----
           end;
        end if;
  
+       --  Set Referenced_As_LHS if appropriate. We are neither interested
+       --  in compiler-generated aggregates, nor in references outside the
+       --  extended main source unit.
+ 
+       if Comes_From_Source (N)
+         and then In_Extended_Main_Source_Unit (Into)
+       then
+          Set_Referenced_Modified (Into, Out_Param => False);
+       end if;
+ 
        --  First before we start, a special case. If we have a bit packed
        --  array represented as a modular type, then clear the value to
        --  zero first, to ensure that unused bits are properly cleared.
diff -Nrcpad gcc-16-20260412/gcc/ada/gcc-interface/Makefile.in gcc-16-20260419/gcc/ada/gcc-interface/Makefile.in
*** gcc-16-20260412/gcc/ada/gcc-interface/Makefile.in	Sun Apr 12 22:32:06 2026
--- gcc-16-20260419/gcc/ada/gcc-interface/Makefile.in	Sun Apr 19 22:32:05 2026
*************** LIBICONV_DEP = @LIBICONV_DEP@
*** 182,187 ****
--- 182,190 ----
  # Any system libraries needed just for GNAT.
  SYSLIBS = @GNAT_LIBEXC@
  
+ # Default is no TGT_LIB; one might be passed down or something
+ TGT_LIB =
+ 
  # List extra gnattools
  EXTRA_GNATTOOLS =
  
*************** RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
*** 203,208 ****
--- 206,226 ----
  # to deal with as it may conflict with the libgcc provided by the system).
  GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc
  
+ # We need to link against libbacktrace because diagnostics use it
+ LIBBACKTRACE = ../../../libbacktrace/.libs/libbacktrace.a
+ 
+ ifneq ($(enable_host_pie),)
+ LIBIBERTY = ../../../libiberty/pic/libiberty.a
+ LIBGNAT   = ../$(RTSDIR)/libgnat_pic.a
+ else
+ LIBIBERTY = ../../../libiberty/libiberty.a
+ LIBGNAT   = ../$(RTSDIR)/libgnat.a
+ endif
+ 
+ # How to link with both our libraries and the system's installed libraries
+ LIBS = $(LIBGNAT) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) $(LIBIBERTY) \
+   $(SYSLIBS) $(TGT_LIB)
+ 
  # End of variables for you to override.
  
  all: all.indirect
*************** ALL_CPPFLAGS = $(CPPFLAGS)
*** 234,259 ****
  
  ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
  
- ifneq ($(enable_host_pie),)
- LIBIBERTY = ../../libiberty/pic/libiberty.a
- else
- LIBIBERTY = ../../libiberty/libiberty.a
- endif
- 
- # We need to link against libbacktrace because diagnostic.c in
- # libcommon.a uses it.
- LIBBACKTRACE = ../../libbacktrace/.libs/libbacktrace.a
- 
- # How to link with both our special library facilities
- # and the system's installed libraries.
- LIBS = $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) $(LIBIBERTY) $(SYSLIBS)
- LIBDEPS = $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBBACKTRACE) $(LIBIBERTY)
- # Default is no TGT_LIB; one might be passed down or something
- TGT_LIB =
  TOOLS_LIBS = ../version.o ../link.o ../targext.o ../../ggc-none.o \
    ../../libcommon-target.a ../../libcommon.a ../../../libcpp/libcpp.a \
!   $(LIBGNAT) $(LIBINTL) $(LIBICONV) ../$(LIBBACKTRACE) ../$(LIBIBERTY) \
!   $(SYSLIBS) $(TGT_LIB)
  
  # Specify the directories to be searched for header files.
  # Both . and srcdir are used, in that order,
--- 252,260 ----
  
  ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
  
  TOOLS_LIBS = ../version.o ../link.o ../targext.o ../../ggc-none.o \
    ../../libcommon-target.a ../../libcommon.a ../../../libcpp/libcpp.a \
!   $(LIBS)
  
  # Specify the directories to be searched for header files.
  # Both . and srcdir are used, in that order,
*************** endif
*** 368,387 ****
  
  # Configuration of host tools
  
- # Under linux, host tools need to be linked with -ldl
- 
- ifeq ($(strip $(filter-out linux%,$(host_os))),)
-    TOOLS1_LIBS=-ldl
- endif
- 
  include $(fsrcdir)/ada/Makefile.rtl
  
- ifneq ($(enable_host_pie),)
- LIBGNAT=../$(RTSDIR)/libgnat_pic.a
- else
- LIBGNAT=../$(RTSDIR)/libgnat.a
- endif
- 
  TOOLS_FLAGS_TO_PASS=		\
  	"CC=$(CC)" 		\
  	"CFLAGS=$(CFLAGS) $(PICFLAG)"	\
--- 369,376 ----
*************** gnatlink-re: ../stamp-tools gnatmake-re
*** 522,531 ****
  
  # Likewise for the tools
  ../../gnatmake$(exeext): b_gnatm.o $(GNATMAKE_OBJS)
! 	+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)
  
  ../../gnatlink$(exeext): b_gnatl.o $(GNATLINK_OBJS)
! 	+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)
  
  ../stamp-gnatlib-$(RTSDIR):
  	@if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \
--- 511,520 ----
  
  # Likewise for the tools
  ../../gnatmake$(exeext): b_gnatm.o $(GNATMAKE_OBJS)
! 	+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS)
  
  ../../gnatlink$(exeext): b_gnatl.o $(GNATLINK_OBJS)
! 	+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS)
  
  ../stamp-gnatlib-$(RTSDIR):
  	@if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \
diff -Nrcpad gcc-16-20260412/gcc/ada/libgnat/g-heasor.adb gcc-16-20260419/gcc/ada/libgnat/g-heasor.adb
*** gcc-16-20260412/gcc/ada/libgnat/g-heasor.adb	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/ada/libgnat/g-heasor.adb	Sun Apr 19 22:32:05 2026
*************** package body GNAT.Heap_Sort is
*** 45,54 ****
     --  from 2NlogN to NlogN.
  
     procedure Sort (N : Natural; Xchg : Xchg_Procedure; Lt : Lt_Function) is
        Max : Natural := N;
!       --  Current Max index in tree being sifted. Note that we make Max
!       --  Natural rather than Positive so that the case of sorting zero
!       --  elements is correctly handled (i.e. does nothing at all).
  
        procedure Sift (S : Positive);
        --  This procedure sifts up node S, i.e. converts the subtree rooted
--- 45,53 ----
     --  from 2NlogN to NlogN.
  
     procedure Sort (N : Natural; Xchg : Xchg_Procedure; Lt : Lt_Function) is
+ 
        Max : Natural := N;
!       --  Current Max index in tree being sifted
  
        procedure Sift (S : Positive);
        --  This procedure sifts up node S, i.e. converts the subtree rooted
*************** package body GNAT.Heap_Sort is
*** 78,84 ****
           --  Loop to pull up larger sons
  
           loop
!             Son := C + C;
  
              if Son < Max then
                 if Lt (Son, Son + 1) then
--- 77,85 ----
           --  Loop to pull up larger sons
  
           loop
!             exit when C > Positive'Last / 2;
! 
!             Son := 2 * C;
  
              if Son < Max then
                 if Lt (Son, Son + 1) then
diff -Nrcpad gcc-16-20260412/gcc/ada/libgnat/g-hesora.adb gcc-16-20260419/gcc/ada/libgnat/g-hesora.adb
*** gcc-16-20260412/gcc/ada/libgnat/g-hesora.adb	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/ada/libgnat/g-hesora.adb	Sun Apr 19 22:32:05 2026
*************** package body GNAT.Heap_Sort_A is
*** 57,62 ****
--- 57,66 ----
        --  entry are irrelevant. This is just a minor optimization to avoid
        --  what would otherwise be two junk moves in phase two of the sort.
  
+       ----------
+       -- Sift --
+       ----------
+ 
        procedure Sift (S : Positive) is
           C      : Positive := S;
           Son    : Positive;
*************** package body GNAT.Heap_Sort_A is
*** 76,86 ****
           --  Loop to pull up larger sons
  
           loop
              Son := 2 * C;
-             exit when Son > Max;
  
!             if Son < Max and then Lt (Son, Son + 1) then
!                Son := Son + 1;
              end if;
  
              Move (Son, C);
--- 80,95 ----
           --  Loop to pull up larger sons
  
           loop
+             exit when C > Positive'Last / 2;
+ 
              Son := 2 * C;
  
!             if Son < Max then
!                if Lt (Son, Son + 1) then
!                   Son := Son + 1;
!                end if;
!             elsif Son > Max then
!                exit;
              end if;
  
              Move (Son, C);
*************** package body GNAT.Heap_Sort_A is
*** 126,132 ****
           Max := Max - 1;
           Sift (1);
        end loop;
- 
     end Sort;
  
  end GNAT.Heap_Sort_A;
--- 135,140 ----
diff -Nrcpad gcc-16-20260412/gcc/ada/libgnat/g-hesorg.adb gcc-16-20260419/gcc/ada/libgnat/g-hesorg.adb
*** gcc-16-20260412/gcc/ada/libgnat/g-hesorg.adb	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/ada/libgnat/g-hesorg.adb	Sun Apr 19 22:32:05 2026
*************** package body GNAT.Heap_Sort_G is
*** 67,75 ****
           C      : Positive := S;
           Son    : Positive;
           Father : Positive;
-          --  Note: by making the above all Positive, we ensure that a test
-          --  against zero for the temporary location can be resolved on the
-          --  basis of types when the routines are inlined.
  
        begin
           --  This is where the optimization is done, normally we would do a
--- 67,72 ----
*************** package body GNAT.Heap_Sort_G is
*** 85,90 ****
--- 82,89 ----
           --  Loop to pull up larger sons
  
           loop
+             exit when C > Positive'Last / 2;
+ 
              Son := 2 * C;
  
              if Son < Max then
*************** package body GNAT.Heap_Sort_G is
*** 138,144 ****
           Max := Max - 1;
           Sift (1);
        end loop;
- 
     end Sort;
  
  end GNAT.Heap_Sort_G;
--- 137,142 ----
diff -Nrcpad gcc-16-20260412/gcc/ada/libgnat/s-pehage.adb gcc-16-20260419/gcc/ada/libgnat/s-pehage.adb
*** gcc-16-20260412/gcc/ada/libgnat/s-pehage.adb	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/ada/libgnat/s-pehage.adb	Sun Apr 19 22:32:05 2026
*************** package body System.Perfect_Hash_Generat
*** 1275,1282 ****
     --------------
  
     function New_Word (S : String) return Word_Type is
     begin
!       return new String'(S);
     end New_Word;
  
     ------------------------------
--- 1275,1283 ----
     --------------
  
     function New_Word (S : String) return Word_Type is
+       subtype Word_String is String (1 .. S'Length);
     begin
!       return new String'(Word_String (S));
     end New_Word;
  
     ------------------------------
diff -Nrcpad gcc-16-20260412/gcc/ada/sem_res.adb gcc-16-20260419/gcc/ada/sem_res.adb
*** gcc-16-20260412/gcc/ada/sem_res.adb	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/ada/sem_res.adb	Sun Apr 19 22:32:05 2026
*************** with Strub;          use Strub;
*** 90,95 ****
--- 90,96 ----
  with Style;          use Style;
  with Targparm;       use Targparm;
  with Tbuild;         use Tbuild;
+ with Ttypes;         use Ttypes;
  with Uintp;          use Uintp;
  with Urealp;         use Urealp;
  with Warnsw;         use Warnsw;
*************** package body Sem_Res is
*** 2329,2337 ****
              Set_Is_Static_Expression (N);
  
           elsif Nkind (N) = N_Real_Literal and then Is_Integer_Type (Typ) then
!             Rewrite (N,
!               Make_Integer_Literal (Sloc (N),
!                 Intval => UR_To_Uint (Realval (N))));
              Set_Etype (N, Universal_Integer);
              Set_Is_Static_Expression (N);
  
--- 2330,2345 ----
              Set_Is_Static_Expression (N);
  
           elsif Nkind (N) = N_Real_Literal and then Is_Integer_Type (Typ) then
!             if UR_Abs (Realval (N)) < Ureal_2_63
!               or else (System_Max_Integer_Size = 128
!                         and then UR_Abs (Realval (N)) < Ureal_2_127)
!             then
!                Rewrite (N,
!                  Make_Integer_Literal (Sloc (N),
!                    Intval => UR_To_Uint (Realval (N))));
!             else
!                Rewrite (N, Make_Integer_Literal (Sloc (N), Intval => Uint_0));
!             end if;
              Set_Etype (N, Universal_Integer);
              Set_Is_Static_Expression (N);
  
*************** package body Sem_Res is
*** 12266,12277 ****
           end if;
        end if;
  
!       --  If we got here we meed to transform the string literal into the
        --  equivalent qualified positional array aggregate. This is rather
        --  heavy artillery for this situation, but it is hard work to avoid.
  
        declare
           Lits : constant List_Id := New_List;
           P    : Source_Ptr := Loc + 1;
           C    : Char_Code;
  
--- 12274,12286 ----
           end if;
        end if;
  
!       --  If we got here, we need to transform the string literal into the
        --  equivalent qualified positional array aggregate. This is rather
        --  heavy artillery for this situation, but it is hard work to avoid.
  
        declare
           Lits : constant List_Id := New_List;
+          Lit  : Node_Id;
           P    : Source_Ptr := Loc + 1;
           C    : Char_Code;
  
*************** package body Sem_Res is
*** 12284,12293 ****
              C := Get_String_Char (Str, J);
              Set_Character_Literal_Name (C);
  
!             Append_To (Lits,
                Make_Character_Literal (P,
                  Chars              => Name_Find,
!                 Char_Literal_Value => UI_From_CC (C)));
  
              if In_Character_Range (C) then
                 P := P + 1;
--- 12293,12304 ----
              C := Get_String_Char (Str, J);
              Set_Character_Literal_Name (C);
  
!             Lit :=
                Make_Character_Literal (P,
                  Chars              => Name_Find,
!                 Char_Literal_Value => UI_From_CC (C));
!             Preserve_Comes_From_Source (Lit, N);
!             Append_To (Lits, Lit);
  
              if In_Character_Range (C) then
                 P := P + 1;
diff -Nrcpad gcc-16-20260412/gcc/ada/urealp.adb gcc-16-20260419/gcc/ada/urealp.adb
*** gcc-16-20260412/gcc/ada/urealp.adb	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/ada/urealp.adb	Sun Apr 19 22:32:05 2026
*************** package body Urealp is
*** 173,179 ****
  
           begin
              if Val.Rbase = 10 then
!                E := UI_To_Int (Val.Den);
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
--- 173,185 ----
  
           begin
              if Val.Rbase = 10 then
!                if UI_Is_In_Int_Range (Val.Den) then
!                   E := UI_To_Int (Val.Den);
!                elsif Val.Den < 0 then
!                   return Int'Last; -- Saturation to highest exponent
!                else
!                   E := Int'Last; -- High estimate
!                end if;
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
*************** package body Urealp is
*** 226,232 ****
  
           begin
              if Val.Rbase = 10 then
!                E := UI_To_Int (Val.Den);
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
--- 232,244 ----
  
           begin
              if Val.Rbase = 10 then
!                if UI_Is_In_Int_Range (Val.Den) then
!                   E := UI_To_Int (Val.Den);
!                elsif Val.Den < 0 then
!                   return Int'Last; -- Low estimate
!                else
!                   return Int'First; -- Saturation to lowest exponent
!                end if;
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
diff -Nrcpad gcc-16-20260412/gcc/analyzer/ChangeLog gcc-16-20260419/gcc/analyzer/ChangeLog
*** gcc-16-20260412/gcc/analyzer/ChangeLog	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/analyzer/ChangeLog	Sun Apr 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-04-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* engine.cc (impl_region_model_context::on_unexpected_tree_code): Print
+ 	"<unknown>" when m_file or m_function is NULL.
+ 
  2026-03-12  David Malcolm  <dmalcolm@redhat.com>
  
  	PR analyzer/124451
diff -Nrcpad gcc-16-20260412/gcc/analyzer/engine.cc gcc-16-20260419/gcc/analyzer/engine.cc
*** gcc-16-20260412/gcc/analyzer/engine.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/analyzer/engine.cc	Sun Apr 19 22:32:05 2026
*************** impl_region_model_context::on_unexpected
*** 904,914 ****
  {
    logger * const logger = get_logger ();
    if (logger)
!     logger->log ("unhandled tree code: %qs in %qs at %s:%i",
! 		 get_tree_code_name (TREE_CODE (t)),
! 		 loc.get_impl_location ().m_function,
! 		 loc.get_impl_location ().m_file,
! 		 loc.get_impl_location ().m_line);
    if (m_new_state)
      m_new_state->m_valid = false;
  }
--- 904,918 ----
  {
    logger * const logger = get_logger ();
    if (logger)
!     {
!       const dump_impl_location_t &impl_loc = loc.get_impl_location ();
!       const char *unknown = "<unknown>";
!       logger->log ("unhandled tree code: %qs in %qs at %s:%i",
! 		   get_tree_code_name (TREE_CODE (t)),
! 		   impl_loc.m_function ? impl_loc.m_function : unknown,
! 		   impl_loc.m_file ? impl_loc.m_file : unknown,
! 		   impl_loc.m_line);
!     }
    if (m_new_state)
      m_new_state->m_valid = false;
  }
diff -Nrcpad gcc-16-20260412/gcc/calls.cc gcc-16-20260419/gcc/calls.cc
*** gcc-16-20260412/gcc/calls.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/calls.cc	Sun Apr 19 22:32:06 2026
*************** initialize_argument_information (int num
*** 1396,1405 ****
        /* Replace erroneous argument with constant zero.  */
        if (type == error_mark_node || !COMPLETE_TYPE_P (type))
  	args[i].tree_value = integer_zero_node, type = integer_type_node;
-       else if (promote_p
- 	       && INTEGRAL_TYPE_P (type)
- 	       && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
- 	type = integer_type_node;
  
        /* If TYPE is a transparent union or record, pass things the way
  	 we would pass the first field of the union or record.  We have
--- 1396,1401 ----
*************** initialize_argument_information (int num
*** 1541,1546 ****
--- 1537,1547 ----
  	}
  
        unsignedp = TYPE_UNSIGNED (type);
+       if (promote_p
+ 	  && INTEGRAL_TYPE_P (type)
+ 	  && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
+ 	type = integer_type_node;
+ 
        arg.type = type;
        arg.mode
  	= promote_function_mode (type, TYPE_MODE (type), &unsignedp,
diff -Nrcpad gcc-16-20260412/gcc/cgraph.cc gcc-16-20260419/gcc/cgraph.cc
*** gcc-16-20260412/gcc/cgraph.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cgraph.cc	Sun Apr 19 22:32:06 2026
*************** cgraph_node::only_called_directly_p (voi
*** 3626,3631 ****
--- 3626,3641 ----
  				       NULL, true);
  }
  
+ /* Returns TRUE iff THIS is a descendant of N in the clone tree.  */
+ 
+ bool
+ cgraph_node::is_clone_of (cgraph_node *n) const
+ {
+   for (cgraph_node *walker = clone_of; walker; walker = walker->clone_of)
+     if (walker == n)
+       return true;
+   return false;
+ }
  
  /* Collect all callers of NODE.  Worker for collect_callers_of_node.  */
  
diff -Nrcpad gcc-16-20260412/gcc/cgraph.h gcc-16-20260419/gcc/cgraph.h
*** gcc-16-20260412/gcc/cgraph.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cgraph.h	Sun Apr 19 22:32:06 2026
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1294,1299 ****
--- 1294,1302 ----
       it is not used in any other non-standard way.  */
    bool only_called_directly_p (void);
  
+   /* Returns TRUE iff THIS is a descendant of N in the clone tree.  */
+   bool is_clone_of (cgraph_node *n) const;
+ 
    /* Turn profile to global0.  Walk into inlined functions.  */
    void make_profile_local ();
  
diff -Nrcpad gcc-16-20260412/gcc/cgraphbuild.cc gcc-16-20260419/gcc/cgraphbuild.cc
*** gcc-16-20260412/gcc/cgraphbuild.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cgraphbuild.cc	Sun Apr 19 22:32:06 2026
*************** mark_address (gimple *stmt, tree addr, t
*** 214,222 ****
    addr = get_base_address (addr);
    if (TREE_CODE (addr) == FUNCTION_DECL)
      {
        cgraph_node *node = cgraph_node::get_create (addr);
        node->mark_address_taken ();
!       ((symtab_node *)data)->create_reference (node, IPA_REF_ADDR, stmt);
      }
    else if (addr && VAR_P (addr)
  	   && (TREE_STATIC (addr) || DECL_EXTERNAL (addr)))
--- 214,240 ----
    addr = get_base_address (addr);
    if (TREE_CODE (addr) == FUNCTION_DECL)
      {
+       cgraph_node *caller = (cgraph_node *) data;
        cgraph_node *node = cgraph_node::get_create (addr);
+       /* If NODE was cloned and the caller is a callback-dispatching function,
+ 	 the gimple call might not be updated yet.  Check whether that's the
+ 	 case and if so, replace NODE with the correct callee.  */
+       cgraph_edge *e = caller->get_edge (stmt);
+       if (e && e->has_callback)
+ 	{
+ 	  for (cgraph_edge *cbe = e->first_callback_edge ();
+ 	       cbe;
+ 	       cbe = cbe->next_callback_edge ())
+ 	    {
+ 	      if (cbe->callee->is_clone_of (node))
+ 		{
+ 		  node = cbe->callee;
+ 		  break;
+ 		}
+ 	    }
+ 	}
        node->mark_address_taken ();
!       caller->create_reference (node, IPA_REF_ADDR, stmt);
      }
    else if (addr && VAR_P (addr)
  	   && (TREE_STATIC (addr) || DECL_EXTERNAL (addr)))
diff -Nrcpad gcc-16-20260412/gcc/cgraphunit.cc gcc-16-20260419/gcc/cgraphunit.cc
*** gcc-16-20260412/gcc/cgraphunit.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cgraphunit.cc	Sun Apr 19 22:32:06 2026
*************** process_symver_attribute (symtab_node *n
*** 739,745 ****
  
    for (; value != NULL; value = TREE_CHAIN (value))
      {
!       /* Starting from bintuils 2.35 gas supports:
  	  # Assign foo to bar@V1 and baz@V2.
  	  .symver foo, bar@V1
  	  .symver foo, baz@V2
--- 739,745 ----
  
    for (; value != NULL; value = TREE_CHAIN (value))
      {
!       /* Starting from binutils 2.35 gas supports:
  	  # Assign foo to bar@V1 and baz@V2.
  	  .symver foo, bar@V1
  	  .symver foo, baz@V2
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64-cores.def gcc-16-20260419/gcc/config/aarch64/aarch64-cores.def
*** gcc-16-20260412/gcc/config/aarch64/aarch64-cores.def	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64-cores.def	Sun Apr 19 22:32:06 2026
*************** AARCH64_CORE("neoverse-v2", neoversev2,
*** 234,239 ****
--- 234,240 ----
  AARCH64_CORE("grace", grace, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, SVE2_AES, SVE2_SHA3, SVE2_SM4, PROFILE), neoversev2, 0x41, 0xd4f, -1)
  AARCH64_CORE("neoverse-v3", neoversev3, cortexa57, V9_2A, (SVE2_BITPERM, RNG, LS64, MEMTAG, PROFILE), neoversev3, 0x41, 0xd84, -1)
  AARCH64_CORE("neoverse-v3ae", neoversev3ae, cortexa57, V9_2A, (SVE2_BITPERM, RNG, LS64, MEMTAG, PROFILE), neoversev3ae, 0x41, 0xd83, -1)
+ AARCH64_CORE("armagicpu", armagicpu, cortexa57, V9_2A, (SVE2_BITPERM, RNG, LS64, MEMTAG, PROFILE), neoversev3ae, 0x41, 0xd83, -1)
  
  AARCH64_CORE("c1-nano", c1nano, cortexa53, V9_3A, (MEMTAG, SVE2_BITPERM, F16FML, SME2, RCPC3), cortexa53, 0x41, 0xd8a, -1)
  AARCH64_CORE("c1-pro", c1pro, cortexa57, V9_3A, (MEMTAG, SVE2_BITPERM, F16FML, PROFILE, SME2, RCPC3), neoversen3, 0x41, 0xd8b, -1)
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64-narrow-gp-writes.cc gcc-16-20260419/gcc/config/aarch64/aarch64-narrow-gp-writes.cc
*** gcc-16-20260412/gcc/config/aarch64/aarch64-narrow-gp-writes.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/config/aarch64/aarch64-narrow-gp-writes.cc	Sun Apr 19 22:32:06 2026
***************
*** 0 ****
--- 1,602 ----
+ /* GP register writes narrowing pass.
+    Copyright The GNU Toolchain Authors.
+ 
+    This file is part of GCC.
+ 
+    GCC 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.
+ 
+    GCC 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.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #define IN_TARGET_CODE 1
+ 
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_FUNCTIONAL
+ #define INCLUDE_ARRAY
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "backend.h"
+ #include "rtl.h"
+ #include "df.h"
+ #include "hash-map.h"
+ #include "rtl-ssa.h"
+ #include "rtlhooks-def.h"
+ #include "rtl-iter.h"
+ #include "tree-pass.h"
+ #include "insn-attr.h"
+ 
+ using namespace rtl_ssa;
+ 
+ namespace {
+ 
+ /* This pass converts 64-bit (X-register) operations to 32-bit (W-register)
+    operations when the upper 32 bits of the result are known to be zero.
+ 
+    In AArch64, each 64-bit X register has a corresponding 32-bit W register
+    that maps to its lower half.  When we can guarantee that the upper 32 bits
+    are never used, we can safely narrow operations to use W registers instead.
+ 
+    For example, the following code:
+      uint64_t foo (uint64_t a) {
+ 	 return (a & 255) + 3;
+      }
+ 
+    Without this pass, compiles to:
+ 	and	x0, x0, 255
+ 	add	x0, x0, 3
+ 	ret
+ 
+    But can be optimized to:
+ 	and	x0, x0, 255
+ 	add	w0, w0, 3
+ 	ret
+ 
+    The pass makes a single forward sweep over EBBs in RPO:
+       - Computes a nonzero-bit mask for every GP register definition.
+       - A custom reg_nonzero_bits RTL hook feeds the per-definition masks
+       (stored in nzero_map) into nonzero_bits (), making it context-aware.
+       - At control-flow joins, combine_mask_from_phi ORs the masks of all phi
+       inputs; inputs not yet processed (backedges) receive a conservative mask.
+       - Instructions whose results fit in 32 bits are narrowed after verifying
+       with rtl_ssa::recog and rtl_ssa::change_is_worthwhile.
+       - Both plain SET and flag-setting PARALLEL patterns (ADDS, SUBS, ANDS,
+       etc.) are handled.  */
+ 
+ const pass_data pass_data_narrow_gp_writes = {
+   RTL_PASS,	      // type
+   "narrow_gp_writes", // name
+   OPTGROUP_NONE,      // optinfo_flags
+   TV_MACH_DEP,	      // tv_id
+   0,		      // properties_required
+   0,		      // properties_provided
+   0,		      // properties_destroyed
+   0,		      // todo_flags_start
+   TODO_df_finish,     // todo_flags_finish
+ };
+ 
+ using mask_t = unsigned HOST_WIDE_INT;
+ 
+ class narrow_gp_writes
+ {
+ public:
+   narrow_gp_writes ();
+   ~narrow_gp_writes ();
+   void execute ();
+ 
+   static narrow_gp_writes *get_instance () { return instance; }
+   mask_t lookup_mask_from_def (def_info *def);
+ 
+   /* Current instruction being analyzed, set during the main loop and
+      read by the reg_nonzero_bits hook.  */
+   insn_info *m_curr_insn = nullptr;
+ 
+ private:
+   static narrow_gp_writes *instance;
+ 
+   /* Map from register definitions to their nonzero bit masks.  */
+   hash_map<def_info *, mask_t> m_nzero_map;
+ 
+   mask_t combine_mask_from_phi (phi_info *phi);
+   rtx optimize_single_set_insn (insn_info *, rtx);
+   rtx optimize_compare_arith_insn (insn_info *);
+   bool optimize_insn (insn_info *);
+ };
+ 
+ narrow_gp_writes *narrow_gp_writes::instance = nullptr;
+ 
+ /* Return the nonzero bit mask for definition DEF.  If we haven't computed
+    a mask for this definition yet, return a conservative mask based on the
+    mode.  */
+ 
+ mask_t
+ narrow_gp_writes::lookup_mask_from_def (def_info *def)
+ {
+   mask_t *res = m_nzero_map.get (def);
+   return res ? *res : GET_MODE_MASK (def->mode ());
+ }
+ 
+ /* Compute the nonzero bit mask for phi node PHI by combining the masks
+    of all incoming values.  Inputs not yet in m_nzero_map (e.g. from
+    backedges) are given a conservative mode mask.
+ 
+    The caller is expected to call this once per phi and store the result;
+    calling it on demand would re-walk all phi inputs for every use, giving
+    O(in-degree * num-uses) cost.  */
+ 
+ mask_t
+ narrow_gp_writes::combine_mask_from_phi (phi_info *phi)
+ {
+   mask_t phi_mode_mask = GET_MODE_MASK (phi->mode ());
+   mask_t combined_mask = 0;
+   for (use_info *phi_use : phi->inputs ())
+     {
+       set_info *phi_set = phi_use->def ();
+       if (!phi_set)
+ 	{
+ 	  combined_mask |= phi_mode_mask;
+ 	  break;
+ 	}
+       combined_mask |= lookup_mask_from_def (phi_set);
+       if ((combined_mask & phi_mode_mask) == phi_mode_mask)
+ 	break;
+     }
+ 
+   return phi_mode_mask & combined_mask;
+ }
+ 
+ /* RTL hooks callback for computing nonzero bits of registers.
+    Updates NONZERO with the tracked nonzero bits for register X.  */
+ 
+ static rtx
+ reg_nonzero_bits_for_narrow_gp_writes (const_rtx x, scalar_int_mode xmode,
+ 				       scalar_int_mode,
+ 				       unsigned HOST_WIDE_INT *nonzero)
+ {
+   auto pass = narrow_gp_writes::get_instance ();
+   if (auto use = find_access (pass->m_curr_insn->uses (), REGNO (x)))
+     if (use->mode () == xmode)
+       {
+ 	if (def_info *set = use->def ())
+ 	  {
+ 	    mask_t mask = pass->lookup_mask_from_def (set);
+ 	    /* If the def is in a narrower mode than the use, RTL semantics
+ 	       say the upper bits are undefined.  Treat them conservatively
+ 	       as potentially nonzero.  */
+ 	    if (known_lt (GET_MODE_SIZE (set->mode ()),
+ 			  GET_MODE_SIZE (use->mode ())))
+ 	      mask |= ~GET_MODE_MASK (set->mode ());
+ 	    *nonzero &= mask;
+ 	  }
+ 	return NULL_RTX;
+       }
+ 
+   return NULL_RTX;
+ }
+ 
+ /* Convert a DImode RTL expression X to its SImode equivalent.
+    Recursively narrows operands of supported operations.  */
+ 
+ static rtx
+ narrow_dimode_src (rtx x)
+ {
+   rtx op = lowpart_subreg (SImode, x, DImode);
+   rtx_code code = GET_CODE (op);
+   /* If the generic lowpart logic simplifies it then use that.
+      If it just results in wrapping X in a subreg or truncate then try harder
+      below.  */
+   if (GET_CODE (op) != SUBREG && GET_CODE (op) != TRUNCATE)
+     return op;
+ 
+   if (subreg_lowpart_p (op) && GET_MODE (SUBREG_REG (op)) == DImode)
+     op = SUBREG_REG (op);
+   else if (code == TRUNCATE && GET_MODE (XEXP (op, 0)) == DImode)
+     op = XEXP (op, 0);
+   else
+     return op;
+ 
+   code = GET_CODE (op);
+   switch (code)
+     {
+     case AND:
+     case IOR:
+     case XOR:
+     case ASHIFT:
+       {
+ 	rtx op0 = narrow_dimode_src (XEXP (op, 0));
+ 	rtx op1 = narrow_dimode_src (XEXP (op, 1));
+ 	return simplify_gen_binary (code, SImode, op0, op1);
+       }
+ 
+     case IF_THEN_ELSE:
+       {
+ 	rtx trueop = narrow_dimode_src (XEXP (op, 1));
+ 	rtx falseop = narrow_dimode_src (XEXP (op, 2));
+ 	return simplify_gen_ternary (code, SImode, GET_MODE (XEXP (op, 0)),
+ 				     XEXP (op, 0), trueop, falseop);
+       }
+ 
+     default:
+       return op;
+     }
+ }
+ 
+ /* Override the reg_nonzero_bits hook so that nonzero_bits () consults our
+    per-definition mask map when it encounters a register operand.  Without
+    this, nonzero_bits () conservatively returns the full mode mask for any
+    register.  */
+ #undef RTL_HOOKS_REG_NONZERO_REG_BITS
+ #define RTL_HOOKS_REG_NONZERO_REG_BITS reg_nonzero_bits_for_narrow_gp_writes
+ static const struct rtl_hooks narrow_gp_writes_rtl_hooks
+   = RTL_HOOKS_INITIALIZER;
+ 
+ narrow_gp_writes::narrow_gp_writes ()
+ {
+   timevar_push (TV_MACH_DEP);
+   calculate_dominance_info (CDI_DOMINATORS);
+   df_analyze ();
+   crtl->ssa = new rtl_ssa::function_info (cfun);
+   rtl_hooks = narrow_gp_writes_rtl_hooks;
+   m_curr_insn = nullptr;
+   instance = this;
+ }
+ 
+ narrow_gp_writes::~narrow_gp_writes ()
+ {
+   instance = nullptr;
+   m_curr_insn = nullptr;
+   rtl_hooks = general_rtl_hooks;
+   crtl->ssa->perform_pending_updates ();
+   delete crtl->ssa;
+   crtl->ssa = nullptr;
+   free_dominance_info (CDI_DOMINATORS);
+   timevar_pop (TV_MACH_DEP);
+ }
+ 
+ /* Return true if we can track nonzero bits and potentially narrow INSN.  */
+ 
+ static bool
+ can_track_nonzero_bits_p (insn_info *insn)
+ {
+   return insn->can_be_optimized () && !insn->is_asm () && !insn->is_jump ()
+ 	 && !insn->has_pre_post_modify ();
+ }
+ 
+ /* Attempt to replace INSN's pattern with NEW_PAT.  Returns true if the
+    replacement was successful.  */
+ 
+ static bool
+ narrow_dimode_ops (insn_info *insn, rtx new_pat)
+ {
+   if (dump_file)
+     {
+       fprintf (dump_file, "Trying to narrow insn:\n");
+       print_rtl_single (dump_file, insn->rtl ());
+       fprintf (dump_file, "with new pattern:\n");
+       print_rtl_single (dump_file, new_pat);
+     }
+ 
+   auto attempt = crtl->ssa->new_change_attempt ();
+   rtl_ssa::insn_change change (insn);
+   rtx_insn *rtl = insn->rtl ();
+   insn_change_watermark watermark;
+   validate_change (rtl, &PATTERN (rtl), new_pat, 1);
+ 
+   if (!rtl_ssa::recog (attempt, change))
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "Narrowed pattern not recognised, skipping\n");
+       return false;
+     }
+ 
+   if (!rtl_ssa::change_is_worthwhile (change))
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "Narrowed pattern not worthwhile, skipping\n");
+       return false;
+     }
+ 
+   confirm_change_group ();
+   crtl->ssa->change_insn (change);
+   if (dump_file)
+     {
+       fprintf (dump_file, "Successfully narrowed insn:\n");
+       print_rtl_single (dump_file, new_pat);
+     }
+   return true;
+ }
+ 
+ /* Try to narrow flag-setting arithmetic operations (e.g., ADDS, SUBS, ANDS).
+    These are represented as PARALLEL patterns with a compare and a set.
+    Returns the narrowed pattern or NULL_RTX if narrowing is not possible.  */
+ 
+ rtx
+ narrow_gp_writes::optimize_compare_arith_insn (insn_info *insn)
+ {
+   rtx pat = PATTERN (insn->rtl ());
+   if (GET_CODE (pat) != PARALLEL || XVECLEN (pat, 0) != 2)
+     return NULL_RTX;
+ 
+   rtx cmp_set = XVECEXP (pat, 0, 0);
+   rtx set = XVECEXP (pat, 0, 1);
+   if (GET_CODE (cmp_set) != SET || GET_CODE (set) != SET)
+     return NULL_RTX;
+ 
+   if (!REG_P (SET_DEST (cmp_set)) || REGNO (SET_DEST (cmp_set)) != CC_REGNUM
+       || GET_CODE (SET_SRC (cmp_set)) != COMPARE)
+     return NULL_RTX;
+ 
+   rtx set_src = SET_SRC (set);
+   rtx set_dst = SET_DEST (set);
+   if (!REG_P (set_dst) || !GP_REGNUM_P (REGNO (set_dst)))
+     return NULL_RTX;
+ 
+   /* Only record masks narrower than the full mode; lookup_mask_from_def
+      already returns GET_MODE_MASK for defs not in the map.  */
+   mask_t mask = nonzero_bits (set_src, GET_MODE (set_dst));
+   if (mask != GET_MODE_MASK (GET_MODE (set_dst)))
+     if (auto def = find_access (insn->defs (), REGNO (set_dst)))
+       m_nzero_map.put (def, mask);
+ 
+   if (GET_MODE (set_dst) != DImode)
+     return NULL_RTX;
+ 
+   /* Skip sources that would get simplified to the original instruction
+      after zero extending to DImode and using simplify_gen_unary.  */
+   if (CONST_INT_P (set_src) || GET_CODE (set_src) == ZERO_EXTEND)
+     return NULL_RTX;
+ 
+   rtx cmp_op0 = XEXP (SET_SRC (cmp_set), 0);
+   rtx cmp_op1 = XEXP (SET_SRC (cmp_set), 1);
+   if (cmp_op1 != CONST0_RTX (DImode) || !rtx_equal_p (set_src, cmp_op0))
+     return NULL_RTX;
+ 
+   /* CC_Zmode tests the Z flag, which is unaffected by narrowing as long as
+      the upper 32 bits are known zero.
+ 
+      CC_NZmode and CC_NZVmode also test the N flag.  Narrowing moves the
+      sign bit from bit 63 to bit 31, so if bit 31 could be set, narrowing
+      would flip N from 0 to 1.  We therefore require bit 31 to be zero
+      as well.
+ 
+      allowed_mask describes which bits are allowed to be nonzero for
+      narrowing to be safe.  */
+   machine_mode cc_mode = GET_MODE (SET_SRC (cmp_set));
+   mask_t allowed_mask = 0;
+   if (cc_mode == CC_Zmode)
+     allowed_mask = GET_MODE_MASK (SImode);
+   else if (cc_mode == CC_NZmode || cc_mode == CC_NZVmode)
+     allowed_mask = GET_MODE_MASK (SImode) >> 1;
+   else
+     return NULL_RTX;
+ 
+   if (mask & ~allowed_mask)
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "Cannot narrow insn %d: mask %lx\n",
+ 		 INSN_UID (insn->rtl ()), mask);
+       return NULL_RTX;
+     }
+ 
+   rtx narrowed_src = narrow_dimode_src (set_src);
+   if (GET_MODE (narrowed_src) == DImode)
+     return NULL_RTX;
+ 
+   /* Same as optimize_single_set_insn: wrap in ZERO_EXTEND via
+      simplify_gen_unary for canonical form, and bail out if the
+      result reproduces the original.  */
+   rtx simplified_src
+     = simplify_gen_unary (ZERO_EXTEND, DImode, narrowed_src, SImode);
+ 
+   /* If the simplified result is identical to the original source before
+      narrowing, skip further processing.  */
+   if (rtx_equal_p (simplified_src, set_src))
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "Simplification reproduced original, "
+ 		 "skipping insn %d\n",
+ 		 INSN_UID (insn->rtl ()));
+       return NULL_RTX;
+     }
+ 
+   rtx new_set = gen_rtx_SET (set_dst, simplified_src);
+   rtx new_cmp_set
+     = gen_rtx_SET (SET_DEST (cmp_set),
+ 		   gen_rtx_COMPARE (cc_mode, copy_rtx (narrowed_src),
+ 				    CONST0_RTX (SImode)));
+   return gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, new_cmp_set, new_set));
+ }
+ 
+ /* Try to narrow single SET instructions.
+    Returns the narrowed pattern or NULL_RTX if narrowing is not possible.  */
+ 
+ rtx
+ narrow_gp_writes::optimize_single_set_insn (insn_info *insn, rtx set)
+ {
+   set_info *sinfo = single_set_info (insn);
+   if (!sinfo)
+     return NULL_RTX;
+   rtx dst = SET_DEST (set);
+   rtx src = SET_SRC (set);
+   if (!REG_P (dst) || !GP_REGNUM_P (REGNO (dst)))
+     return NULL_RTX;
+   gcc_checking_assert (sinfo->regno () == REGNO (dst));
+ 
+   /* Only record masks narrower than the full mode; lookup_mask_from_def
+      already returns GET_MODE_MASK for defs not in the map.  */
+   mask_t mask = nonzero_bits (src, GET_MODE (dst));
+   if (mask != GET_MODE_MASK (GET_MODE (dst)))
+     m_nzero_map.put (sinfo, mask);
+ 
+   if (GET_MODE (dst) != DImode)
+     return NULL_RTX;
+ 
+   /* Skip sources that would get simplified to the original instruction
+      after zero extending to DImode and using simplify_gen_unary.  */
+   if (CONST_INT_P (src) || GET_CODE (src) == ZERO_EXTEND)
+     return NULL_RTX;
+ 
+   /* If mask overlaps with top 32 bits we can't narrow.  */
+   if (~GET_MODE_MASK (SImode) & mask)
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "Cannot narrow insn %d: mask %lx\n",
+ 		 INSN_UID (insn->rtl ()), mask);
+       return NULL_RTX;
+     }
+ 
+   rtx narrowed_src = narrow_dimode_src (src);
+ 
+   if (GET_MODE (narrowed_src) == DImode)
+     return NULL_RTX;
+ 
+   /* Wrap the narrowed source in a ZERO_EXTEND back to DImode.  RTL
+      semantics say that an SImode write leaves the upper 32 bits undefined,
+      but on AArch64 writing a W register zeros them.  Without the
+      ZERO_EXTEND a later pass could see that the SImode result matches the
+      lower 32 bits, delete the write as redundant, and silently lose the
+      upper-bit clearing.
+ 
+      Use simplify_gen_unary so that the result is in canonical form.  */
+   rtx simplified_src
+     = simplify_gen_unary (ZERO_EXTEND, DImode, narrowed_src, SImode);
+ 
+   /* If the simplified result is identical to the original source before
+      narrowing, skip further processing.  */
+   if (rtx_equal_p (simplified_src, src))
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "Simplification reproduced original, "
+ 		 "skipping insn %d\n",
+ 		 INSN_UID (insn->rtl ()));
+       return NULL_RTX;
+     }
+ 
+   if (dump_file)
+     {
+       fprintf (dump_file, "Can narrow insn %d:\n", INSN_UID (insn->rtl ()));
+       print_rtl_single (dump_file, insn->rtl ());
+     }
+ 
+   return gen_rtx_SET (dst, simplified_src);
+ }
+ 
+ /* Analyze INSN for narrowing opportunities.  Tracks nonzero bits for GP
+    register definitions.  Returns true if INSN was narrowed.  */
+ 
+ bool
+ narrow_gp_writes::optimize_insn (insn_info *insn)
+ {
+   if (!can_track_nonzero_bits_p (insn))
+     return false;
+ 
+   rtx new_pat;
+   if (auto set = single_set (insn->rtl ()))
+     new_pat = optimize_single_set_insn (insn, set);
+   else
+     new_pat = optimize_compare_arith_insn (insn);
+ 
+   /* Volatile instructions can be tracked above, but should not be narrowed.  */
+   if (!new_pat || insn->has_volatile_refs ())
+     return false;
+ 
+   return narrow_dimode_ops (insn, new_pat);
+ }
+ 
+ void
+ narrow_gp_writes::execute ()
+ {
+   unsigned HOST_WIDE_INT narrowed = 0;
+ 
+   /* RTL-SSA provides EBBs in RPO, so definitions are visited before their
+      forward-edge uses.  Backedge inputs to phis are conservatively handled
+      by using the full mode mask.  */
+   for (auto ebb : crtl->ssa->ebbs ())
+     {
+       for (auto *phi : ebb->phis ())
+ 	{
+ 	  if (dump_file && (dump_flags & TDF_DETAILS))
+ 	    {
+ 	      fprintf (dump_file, "Processing phi:\n");
+ 	      dump (dump_file, phi);
+ 	    }
+ 	  if (!GP_REGNUM_P (phi->regno ()))
+ 	    continue;
+ 
+ 	  /* Only record masks narrower than the full mode;
+ 	     lookup_mask_from_def already returns GET_MODE_MASK for defs
+ 	     not in the map.  */
+ 	  mask_t phi_mask = combine_mask_from_phi (phi);
+ 	  if (phi_mask != GET_MODE_MASK (phi->mode ()))
+ 	    m_nzero_map.put (phi, phi_mask);
+ 	}
+       for (auto insn : ebb->nondebug_insns ())
+ 	{
+ 	  if (dump_file && (dump_flags & TDF_DETAILS))
+ 	    {
+ 	      fprintf (dump_file, "\nProcessing insn:\n");
+ 	      dump (dump_file, insn);
+ 	    }
+ 
+ 	  m_curr_insn = insn;
+ 	  if (optimize_insn (insn))
+ 	    narrowed++;
+ 	}
+     }
+   if (dump_file)
+     fprintf (dump_file,
+ 	     "Narrowed " HOST_WIDE_INT_PRINT_UNSIGNED " instructions\n",
+ 	     narrowed);
+ }
+ 
+ class pass_narrow_gp_writes : public rtl_opt_pass
+ {
+ public:
+   pass_narrow_gp_writes (gcc::context *ctxt)
+     : rtl_opt_pass (pass_data_narrow_gp_writes, ctxt)
+   {}
+ 
+   /* opt_pass methods:  */
+   virtual bool gate (function *)
+   {
+     /* aarch64_narrow_gp_writes takes three values:
+        0: explicitly disabled by -mno-narrow-gp-writes.
+        1: explicitly enabled by -mnarrow-gp-writes.
+        2: default (Init(2)), enabled only if tuning flags request it.  */
+     if (optimize < 2 || !aarch64_narrow_gp_writes)
+       return false;
+ 
+     return aarch64_narrow_gp_writes == 1
+ 	   || (aarch64_tune_params.extra_tuning_flags
+ 	       & AARCH64_EXTRA_TUNE_NARROW_GP_WRITES);
+   }
+   virtual unsigned int execute (function *);
+ };
+ 
+ unsigned int
+ pass_narrow_gp_writes::execute (function *)
+ {
+   narrow_gp_writes ().execute ();
+   return 0;
+ }
+ 
+ } // end namespace
+ 
+ /* Create a new narrow gp writes pass instance.  */
+ rtl_opt_pass *
+ make_pass_narrow_gp_writes (gcc::context *ctxt)
+ {
+   return new pass_narrow_gp_writes (ctxt);
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64-passes.def gcc-16-20260419/gcc/config/aarch64/aarch64-passes.def
*** gcc-16-20260412/gcc/config/aarch64/aarch64-passes.def	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64-passes.def	Sun Apr 19 22:32:06 2026
*************** INSERT_PASS_BEFORE (pass_late_thread_pro
*** 26,28 ****
--- 26,29 ----
  INSERT_PASS_BEFORE (pass_shorten_branches, 1, pass_insert_bti);
  INSERT_PASS_BEFORE (pass_early_remat, 1, pass_ldp_fusion);
  INSERT_PASS_BEFORE (pass_peephole2, 1, pass_ldp_fusion);
+ INSERT_PASS_BEFORE (pass_cleanup_barriers, 1, pass_narrow_gp_writes);
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64-protos.h gcc-16-20260419/gcc/config/aarch64/aarch64-protos.h
*** gcc-16-20260412/gcc/config/aarch64/aarch64-protos.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64-protos.h	Sun Apr 19 22:32:06 2026
*************** rtl_opt_pass *make_pass_late_track_specu
*** 1261,1266 ****
--- 1261,1267 ----
  rtl_opt_pass *make_pass_insert_bti (gcc::context *ctxt);
  rtl_opt_pass *make_pass_switch_pstate_sm (gcc::context *ctxt);
  rtl_opt_pass *make_pass_ldp_fusion (gcc::context *);
+ rtl_opt_pass *make_pass_narrow_gp_writes (gcc::context *);
  
  poly_uint64 aarch64_regmode_natural_size (machine_mode);
  
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64-tune.md gcc-16-20260419/gcc/config/aarch64/aarch64-tune.md
*** gcc-16-20260412/gcc/config/aarch64/aarch64-tune.md	Sun Apr 12 22:32:20 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64-tune.md	Sun Apr 19 22:32:22 2026
***************
*** 1,5 ****
  ;; -*- buffer-read-only: t -*-
  ;; Generated automatically by gentune.sh from aarch64-cores.def
  (define_attr "tune"
! 	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88,thunderxt88p1,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,ampere1c,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,fujitsu_monaka,hip12,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,oryon1,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexr82ae,applea12,applem1_0,applem1_1,applem1_2,applem1_3,applem2_0,applem2_1,applem2_2,applem2_3,applem3_0,applem3_1,applem3_2,applem4_0,applem4_1,applem4_2,applem5_0,applem5_1,applem5_2,cortexa510,cortexa520,cortexa520ae,cortexa710,cortexa715,cortexa720,cortexa720ae,cortexa725,cortexa320,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,c1nano,c1pro,c1premium,c1ultra,demeter,olympus,gb10,generic,generic_armv8_a,generic_armv9_a"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
--- 1,5 ----
  ;; -*- buffer-read-only: t -*-
  ;; Generated automatically by gentune.sh from aarch64-cores.def
  (define_attr "tune"
! 	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88,thunderxt88p1,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,ampere1c,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,fujitsu_monaka,hip12,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,oryon1,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexr82ae,applea12,applem1_0,applem1_1,applem1_2,applem1_3,applem2_0,applem2_1,applem2_2,applem2_3,applem3_0,applem3_1,applem3_2,applem4_0,applem4_1,applem4_2,applem5_0,applem5_1,applem5_2,cortexa510,cortexa520,cortexa520ae,cortexa710,cortexa715,cortexa720,cortexa720ae,cortexa725,cortexa320,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,armagicpu,c1nano,c1pro,c1premium,c1ultra,demeter,olympus,gb10,generic,generic_armv8_a,generic_armv9_a"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64-tuning-flags.def gcc-16-20260419/gcc/config/aarch64/aarch64-tuning-flags.def
*** gcc-16-20260412/gcc/config/aarch64/aarch64-tuning-flags.def	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64-tuning-flags.def	Sun Apr 19 22:32:06 2026
*************** AARCH64_EXTRA_TUNING_OPTION ("cheap_fpmr
*** 72,75 ****
--- 72,79 ----
  /* Enables dispatch scheduling.  */
  AARCH64_EXTRA_TUNING_OPTION ("dispatch_sched", DISPATCH_SCHED)
  
+ /* Enables narrowing of 64-bit GP register writes to 32-bit when the upper
+    32 bits are unused.  */
+ AARCH64_EXTRA_TUNING_OPTION ("narrow_gp_writes", NARROW_GP_WRITES)
+ 
  #undef AARCH64_EXTRA_TUNING_OPTION
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64.cc gcc-16-20260419/gcc/config/aarch64/aarch64.cc
*** gcc-16-20260412/gcc/config/aarch64/aarch64.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64.cc	Sun Apr 19 22:32:06 2026
*************** aarch64_bitint_type_info (int n, struct
*** 30497,30503 ****
    else
      info->abi_limb_mode = info->limb_mode;
    info->big_endian = TARGET_BIG_END;
!   info->extended = false;
    return true;
  }
  
--- 30497,30503 ----
    else
      info->abi_limb_mode = info->limb_mode;
    info->big_endian = TARGET_BIG_END;
!   info->extended = bitint_ext_undef;
    return true;
  }
  
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64.md gcc-16-20260419/gcc/config/aarch64/aarch64.md
*** gcc-16-20260412/gcc/config/aarch64/aarch64.md	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64.md	Sun Apr 19 22:32:06 2026
***************
*** 162,168 ****
      ;; actual contents of ZA and PSTATE.ZA with the current function's
      ;; ZA_REGNUM and SME_STATE_REGNUM.  Conceptually, these extra writes
      ;; do not change the value of SME_STATE_REGNUM.  They simply act as
!     ;; sequencing points.  They means that all direct accesses to ZA can
      ;; depend only on ZA_REGNUM and SME_STATE_REGNUM, rather than also
      ;; depending on ZA_SAVED_REGNUM etc.
      (SME_STATE_REGNUM 89)
--- 162,168 ----
      ;; actual contents of ZA and PSTATE.ZA with the current function's
      ;; ZA_REGNUM and SME_STATE_REGNUM.  Conceptually, these extra writes
      ;; do not change the value of SME_STATE_REGNUM.  They simply act as
!     ;; sequencing points.  They mean that all direct accesses to ZA can
      ;; depend only on ZA_REGNUM and SME_STATE_REGNUM, rather than also
      ;; depending on ZA_SAVED_REGNUM etc.
      (SME_STATE_REGNUM 89)
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64.opt gcc-16-20260419/gcc/config/aarch64/aarch64.opt
*** gcc-16-20260412/gcc/config/aarch64/aarch64.opt	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64.opt	Sun Apr 19 22:32:06 2026
*************** mfix-cortex-a53-843419
*** 103,108 ****
--- 103,113 ----
  Target Var(aarch64_fix_a53_err843419) Init(2) Save
  Workaround for ARM Cortex-A53 Erratum number 843419.
  
+ mnarrow-gp-writes
+ Target Var(aarch64_narrow_gp_writes) Optimization Init(2) Save
+ Enable narrowing of 64-bit general purpose register writes to 32-bit when
+ upper 32 bits of the register are unused.
+ 
  mlittle-endian
  Target RejectNegative InverseMask(BIG_END)
  Assume target CPU is configured as little endian.
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/aarch64.opt.urls gcc-16-20260419/gcc/config/aarch64/aarch64.opt.urls
*** gcc-16-20260412/gcc/config/aarch64/aarch64.opt.urls	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/aarch64.opt.urls	Sun Apr 19 22:32:06 2026
*************** UrlSuffix(gcc/AArch64-Options.html#index
*** 18,23 ****
--- 18,26 ----
  mfix-cortex-a53-843419
  UrlSuffix(gcc/AArch64-Options.html#index-mfix-cortex-a53-843419)
  
+ mnarrow-gp-writes
+ UrlSuffix(gcc/AArch64-Options.html#index-mnarrow-gp-writes)
+ 
  mlittle-endian
  UrlSuffix(gcc/AArch64-Options.html#index-mlittle-endian)
  
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/t-aarch64 gcc-16-20260419/gcc/config/aarch64/t-aarch64
*** gcc-16-20260412/gcc/config/aarch64/t-aarch64	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/t-aarch64	Sun Apr 19 22:32:06 2026
*************** aarch64-json-tunings-parser.o: $(srcdir)
*** 238,243 ****
--- 238,248 ----
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/aarch64/aarch64-json-tunings-parser.cc
  
+ aarch64-narrow-gp-writes.o: $(srcdir)/config/aarch64/aarch64-narrow-gp-writes.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-narrow-gp-writes.cc
  comma=,
  MULTILIB_OPTIONS    = $(subst $(comma),/, $(patsubst %, mabi=%, $(subst $(comma),$(comma)mabi=,$(TM_MULTILIB_CONFIG))))
  MULTILIB_DIRNAMES   = $(subst $(comma), ,$(TM_MULTILIB_CONFIG))
diff -Nrcpad gcc-16-20260412/gcc/config/aarch64/tuning_models/olympus.h gcc-16-20260419/gcc/config/aarch64/tuning_models/olympus.h
*** gcc-16-20260412/gcc/config/aarch64/tuning_models/olympus.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/aarch64/tuning_models/olympus.h	Sun Apr 19 22:32:06 2026
*************** static struct tune_params olympus_tuning
*** 560,566 ****
     | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
     | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
     | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW
!    | AARCH64_EXTRA_TUNE_DISPATCH_SCHED),	/* tune_flags.  */
    &olympus_prefetch_tune,
    AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
    AARCH64_LDP_STP_POLICY_ALWAYS,   /* stp_policy_model.  */
--- 560,567 ----
     | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
     | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
     | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW
!    | AARCH64_EXTRA_TUNE_DISPATCH_SCHED
!    | AARCH64_EXTRA_TUNE_NARROW_GP_WRITES),	/* tune_flags.  */
    &olympus_prefetch_tune,
    AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
    AARCH64_LDP_STP_POLICY_ALWAYS,   /* stp_policy_model.  */
diff -Nrcpad gcc-16-20260412/gcc/config/arm/arm-cpus.in gcc-16-20260419/gcc/config/arm/arm-cpus.in
*** gcc-16-20260412/gcc/config/arm/arm-cpus.in	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/arm/arm-cpus.in	Sun Apr 19 22:32:06 2026
*************** begin cpu cortex-m85
*** 1694,1699 ****
--- 1694,1707 ----
   option nomve remove mve mve_float
   option nofp remove ALL_FP mve_float
   option nodsp remove MVE mve_float
+  option cdecp0 add cdecp0
+  option cdecp1 add cdecp1
+  option cdecp2 add cdecp2
+  option cdecp3 add cdecp3
+  option cdecp4 add cdecp4
+  option cdecp5 add cdecp5
+  option cdecp6 add cdecp6
+  option cdecp7 add cdecp7
   isa quirk_no_asmcpu quirk_vlldm
   costs v7m
   part 0xd23
diff -Nrcpad gcc-16-20260412/gcc/config/arm/arm.cc gcc-16-20260419/gcc/config/arm/arm.cc
*** gcc-16-20260412/gcc/config/arm/arm.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/arm/arm.cc	Sun Apr 19 22:32:06 2026
*************** arm_bitint_type_info (int n, struct biti
*** 35933,35939 ****
    else
      info->abi_limb_mode = info->limb_mode;
    info->big_endian = TARGET_BIG_END;
!   info->extended = true;
    return true;
  }
  
--- 35933,35939 ----
    else
      info->abi_limb_mode = info->limb_mode;
    info->big_endian = TARGET_BIG_END;
!   info->extended = bitint_ext_full;
    return true;
  }
  
diff -Nrcpad gcc-16-20260412/gcc/config/arm/arm.md gcc-16-20260419/gcc/config/arm/arm.md
*** gcc-16-20260412/gcc/config/arm/arm.md	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/arm/arm.md	Sun Apr 19 22:32:06 2026
***************
*** 10133,10138 ****
--- 10133,10139 ----
     (set_attr "type" "multiple")]
  )
  
+ ;; (pred4 && pred5) != 0
  (define_insn "*cmp_ite0"
    [(set (match_operand 6 "dominant_cc_register" "")
  	(compare
***************
*** 10149,10155 ****
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 0))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
--- 10150,10160 ----
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 0))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_AND_Y))"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10216,10221 ****
--- 10221,10227 ----
             (const_int 10))])]
  )
  
+ ;; (!pred4 || pred5) != 0
  (define_insn "*cmp_ite1"
    [(set (match_operand 6 "dominant_cc_register" "")
  	(compare
***************
*** 10232,10238 ****
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 1))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
--- 10238,10248 ----
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 1))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_NX_OR_Y))"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10315,10321 ****
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
--- 10325,10335 ----
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_AND_Y))"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10400,10406 ****
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
--- 10414,10424 ----
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_OR_Y))"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
diff -Nrcpad gcc-16-20260412/gcc/config/i386/i386.cc gcc-16-20260419/gcc/config/i386/i386.cc
*** gcc-16-20260412/gcc/config/i386/i386.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/i386/i386.cc	Sun Apr 19 22:32:06 2026
*************** static int const x86_64_ms_abi_int_param
*** 336,342 ****
  };
  
  /* Similar as Clang's preserve_none function parameter passing.
!    NB: Use DI_REG and SI_REG, see ix86_function_value_regno_p.  */
  
  static int const x86_64_preserve_none_int_parameter_registers[6] =
  {
--- 336,342 ----
  };
  
  /* Similar as Clang's preserve_none function parameter passing.
!    NB: Use DI_REG and SI_REG, see ix86_function_arg_regno_p.  */
  
  static int const x86_64_preserve_none_int_parameter_registers[6] =
  {
*************** ix86_zero_call_used_regs (HARD_REG_SET n
*** 4078,4083 ****
--- 4078,4094 ----
      {
        emit_insn (zero_all_vec_insn);
        all_sse_zeroed = true;
+       if (TARGET_64BIT && TARGET_AVX512F)
+ 	{
+ 	  rtx zero = CONST0_RTX (V4SFmode);
+ 	  for (unsigned int regno = XMM16_REG;
+ 	       regno <= XMM31_REG;
+ 	       regno++)
+ 	    {
+ 	      rtx reg = gen_rtx_REG (V4SFmode, regno);
+ 	      emit_move_insn (reg, zero);
+ 	    }
+ 	}
      }
  
    /* mm/st registers are shared registers set, we should follow the following
*************** ix86_bitint_type_info (int n, struct bit
*** 27708,27714 ****
      info->limb_mode = DImode;
    info->abi_limb_mode = info->limb_mode;
    info->big_endian = false;
!   info->extended = false;
    return true;
  }
  
--- 27719,27725 ----
      info->limb_mode = DImode;
    info->abi_limb_mode = info->limb_mode;
    info->big_endian = false;
!   info->extended = bitint_ext_undef;
    return true;
  }
  
diff -Nrcpad gcc-16-20260412/gcc/config/i386/i386.md gcc-16-20260419/gcc/config/i386/i386.md
*** gcc-16-20260412/gcc/config/i386/i386.md	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/i386/i386.md	Sun Apr 19 22:32:06 2026
***************
*** 21859,21869 ****
    "&& TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
     && optimize_function_for_speed_p (cfun)
     && !reg_mentioned_p (operands[0], operands[1])"
!   [(parallel
      [(set (match_dup 0)
  	  (clz:SWI48 (match_dup 1)))
       (unspec [(match_dup 0)] UNSPEC_INSN_FALSE_DEP)])]
!   "ix86_expand_clear (operands[0]);"
    [(set_attr "prefix_rep" "1")
     (set_attr "type" "bitmanip")
     (set_attr "mode" "<MODE>")])
--- 21859,21870 ----
    "&& TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
     && optimize_function_for_speed_p (cfun)
     && !reg_mentioned_p (operands[0], operands[1])"
!   [(set (match_dup 0) (const_int 0))
!    (parallel
      [(set (match_dup 0)
  	  (clz:SWI48 (match_dup 1)))
       (unspec [(match_dup 0)] UNSPEC_INSN_FALSE_DEP)])]
!   ""
    [(set_attr "prefix_rep" "1")
     (set_attr "type" "bitmanip")
     (set_attr "mode" "<MODE>")])
***************
*** 22020,22030 ****
    "&& TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
     && optimize_function_for_speed_p (cfun)
     && !reg_mentioned_p (operands[0], operands[1])"
!   [(parallel
      [(set (match_dup 0)
  	  (unspec:SWI48 [(match_dup 1)] LT_ZCNT))
       (unspec [(match_dup 0)] UNSPEC_INSN_FALSE_DEP)])]
!   "ix86_expand_clear (operands[0]);"
    [(set_attr "type" "<lt_zcnt_type>")
     (set_attr "prefix_0f" "1")
     (set_attr "prefix_rep" "1")
--- 22021,22032 ----
    "&& TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
     && optimize_function_for_speed_p (cfun)
     && !reg_mentioned_p (operands[0], operands[1])"
!   [(set (match_dup 0) (const_int 0))
!    (parallel
      [(set (match_dup 0)
  	  (unspec:SWI48 [(match_dup 1)] LT_ZCNT))
       (unspec [(match_dup 0)] UNSPEC_INSN_FALSE_DEP)])]
!   ""
    [(set_attr "type" "<lt_zcnt_type>")
     (set_attr "prefix_0f" "1")
     (set_attr "prefix_rep" "1")
***************
*** 22666,22676 ****
    "&& TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
     && optimize_function_for_speed_p (cfun)
     && !reg_mentioned_p (operands[0], operands[1])"
!   [(parallel
      [(set (match_dup 0)
  	  (popcount:SWI48 (match_dup 1)))
       (unspec [(match_dup 0)] UNSPEC_INSN_FALSE_DEP)])]
!   "ix86_expand_clear (operands[0]);"
    [(set_attr "prefix_rep" "1")
     (set_attr "type" "bitmanip")
     (set_attr "mode" "<MODE>")])
--- 22668,22679 ----
    "&& TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
     && optimize_function_for_speed_p (cfun)
     && !reg_mentioned_p (operands[0], operands[1])"
!   [(set (match_dup 0) (const_int 0))
!    (parallel
      [(set (match_dup 0)
  	  (popcount:SWI48 (match_dup 1)))
       (unspec [(match_dup 0)] UNSPEC_INSN_FALSE_DEP)])]
!   ""
    [(set_attr "prefix_rep" "1")
     (set_attr "type" "bitmanip")
     (set_attr "mode" "<MODE>")])
diff -Nrcpad gcc-16-20260412/gcc/config/i386/sse.md gcc-16-20260419/gcc/config/i386/sse.md
*** gcc-16-20260412/gcc/config/i386/sse.md	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/i386/sse.md	Sun Apr 19 22:32:06 2026
***************
*** 33275,33280 ****
--- 33275,33285 ----
    [(V16SF "") (V8SF "") (V4SF "")
     (V8DF "") (V4DF "{y}") (V2DF "{x}")])
  
+ ;; Pointer size override for ps2qq conversions: V2DI uses half-width (64-bit)
+ ;; source, needing %q for Intel syntax memory operand disambiguation.
+ (define_mode_attr iptrps2qq
+   [(V8DI "") (V4DI "") (V2DI "q")])
+ 
  (define_insn "avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>"
   [(set (match_operand:<VEC_GATHER_IDXSI> 0 "register_operand" "=v")
         (unspec:<VEC_GATHER_IDXSI>
***************
*** 33303,33309 ****
  	  [(match_operand:<vpckfloat_temp_mode> 1 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>")]
  	  UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2 && <round_saeonly_mode512bit_condition>"
!  "vcvttps2<sat_cvt_sign_prefix>qqs\t{<round_saeonly_mask_op2>%1, %0<mask_operand2>|%0<mask_operand2>, %1<round_saeonly_mask_op2>}"
   [(set_attr "type" "ssecvt")
    (set_attr "prefix" "evex")
    (set_attr "mode" "<sseinsnmode>")])
--- 33308,33314 ----
  	  [(match_operand:<vpckfloat_temp_mode> 1 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>")]
  	  UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2 && <round_saeonly_mode512bit_condition>"
!  "vcvttps2<sat_cvt_sign_prefix>qqs\t{<round_saeonly_mask_op2>%1, %0<mask_operand2>|%0<mask_operand2>, %<iptrps2qq>1<round_saeonly_mask_op2>}"
   [(set_attr "type" "ssecvt")
    (set_attr "prefix" "evex")
    (set_attr "mode" "<sseinsnmode>")])
***************
*** 33316,33322 ****
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttsd2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
--- 33321,33327 ----
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttsd2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %q1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
***************
*** 33329,33335 ****
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttss2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
--- 33334,33340 ----
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttss2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %k1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
diff -Nrcpad gcc-16-20260412/gcc/config/loongarch/loongarch.cc gcc-16-20260419/gcc/config/loongarch/loongarch.cc
*** gcc-16-20260412/gcc/config/loongarch/loongarch.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/loongarch/loongarch.cc	Sun Apr 19 22:32:06 2026
*************** loongarch_bitint_type_info (int n, struc
*** 11391,11397 ****
      info->abi_limb_mode = TImode;
  
    info->big_endian = false;
!   info->extended = true;
    return true;
  }
  
--- 11391,11397 ----
      info->abi_limb_mode = TImode;
  
    info->big_endian = false;
!   info->extended = bitint_ext_partial;
    return true;
  }
  
diff -Nrcpad gcc-16-20260412/gcc/config/microblaze/microblaze.md gcc-16-20260419/gcc/config/microblaze/microblaze.md
*** gcc-16-20260412/gcc/config/microblaze/microblaze.md	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/microblaze/microblaze.md	Sun Apr 19 22:32:06 2026
***************
*** 369,374 ****
--- 369,377 ----
          (bswap:SI (match_operand:SI 1 "register_operand" "r")))]
    "TARGET_REORDER"
    "swapb %0, %1"
+   [(set_attr "type"	"no_delay_arith")
+    (set_attr "mode"	"SI")
+    (set_attr "length"	"4")]
  )
  
  (define_insn "bswaphi2"
***************
*** 377,382 ****
--- 380,388 ----
    "TARGET_REORDER"
    "swapb %0, %1
     swaph %0, %0"
+   [(set_attr "type"	"no_delay_arith")
+    (set_attr "mode"	"SI")
+    (set_attr "length"	"8")]
  )
  
  ;;----------------------------------------------------------------
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/gen-multilib-matches-tests gcc-16-20260419/gcc/config/nvptx/gen-multilib-matches-tests
*** gcc-16-20260412/gcc/config/nvptx/gen-multilib-matches-tests	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/gen-multilib-matches-tests	Sun Apr 19 22:32:06 2026
*************** SMOIL sm_30
*** 16,21 ****
--- 16,22 ----
  AEMM .=misa?sm_30
  AEMM .=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOIL sm_30 sm_89
*** 31,36 ****
--- 32,38 ----
  AEMM .=misa?sm_30
  AEMM .=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** AEMM .=misa?sm_75
*** 39,47 ****
  AEMM .=misa?sm_80
  CMMC
  
! BEGIN '--with-arch=sm_30', '--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_53,sm_61,sm_70,sm_75,sm_80,sm_89'
  SMOID sm_30
! SMOIL sm_30 sm_35 sm_37 sm_52 sm_53 sm_61 sm_70 sm_75 sm_80 sm_89
  AEMM .=misa?sm_30
  CMMC
  
--- 41,49 ----
  AEMM .=misa?sm_80
  CMMC
  
! BEGIN '--with-arch=sm_30', '--with-multilib-list=sm_30,sm_35,sm_37,sm_50,sm_52,sm_53,sm_61,sm_70,sm_75,sm_80,sm_89'
  SMOID sm_30
! SMOIL sm_30 sm_35 sm_37 sm_50 sm_52 sm_53 sm_61 sm_70 sm_75 sm_80 sm_89
  AEMM .=misa?sm_30
  CMMC
  
*************** SMOIL sm_35
*** 52,57 ****
--- 54,60 ----
  AEMM .=misa?sm_30
  AEMM .=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOID sm_35
*** 66,71 ****
--- 69,75 ----
  SMOIL sm_35 sm_30
  AEMM .=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOID sm_37
*** 81,86 ****
--- 85,91 ----
  SMOIL sm_37 sm_30
  AEMM misa?sm_30=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** AEMM .=misa?sm_89
*** 91,101 ****
--- 96,122 ----
  CMMC
  
  
+ BEGIN '--with-arch=sm_50', '--with-multilib-list=sm_50,sm_30,sm_80'
+ SMOID sm_50
+ SMOIL sm_50 sm_30 sm_80
+ AEMM misa?sm_30=misa?sm_35
+ AEMM misa?sm_30=misa?sm_37
+ AEMM .=misa?sm_50
+ AEMM .=misa?sm_52
+ AEMM .=misa?sm_53
+ AEMM .=misa?sm_61
+ AEMM .=misa?sm_70
+ AEMM .=misa?sm_75
+ AEMM misa?sm_80=misa?sm_89
+ CMMC
+ 
+ 
  BEGIN '--with-arch=sm_52', '--with-multilib-list=sm_52,sm_75,sm_35'
  SMOID sm_52
  SMOIL sm_52 sm_75 sm_35
  AEMM misa?sm_35=misa?sm_30
  AEMM misa?sm_35=misa?sm_37
+ AEMM misa?sm_35=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOID sm_53
*** 110,115 ****
--- 131,137 ----
  SMOIL sm_53 sm_30
  AEMM misa?sm_30=misa?sm_35
  AEMM misa?sm_30=misa?sm_37
+ AEMM misa?sm_30=misa?sm_50
  AEMM misa?sm_30=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOID sm_53
*** 124,129 ****
--- 146,152 ----
  SMOIL sm_53 sm_37
  AEMM misa?sm_37=misa?sm_30
  AEMM misa?sm_37=misa?sm_35
+ AEMM misa?sm_37=misa?sm_50
  AEMM misa?sm_37=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** AEMM .=misa?sm_80
*** 133,141 ****
  AEMM .=misa?sm_89
  CMMC
  
! BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_61,sm_70,sm_75,sm_80,sm_89'
  SMOID sm_53
! SMOIL sm_53 sm_30 sm_35 sm_37 sm_52 sm_61 sm_70 sm_75 sm_80 sm_89
  AEMM .=misa?sm_53
  CMMC
  
--- 156,164 ----
  AEMM .=misa?sm_89
  CMMC
  
! BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_30,sm_35,sm_37,sm_50,sm_52,sm_61,sm_70,sm_75,sm_80,sm_89'
  SMOID sm_53
! SMOIL sm_53 sm_30 sm_35 sm_37 sm_50 sm_52 sm_61 sm_70 sm_75 sm_80 sm_89
  AEMM .=misa?sm_53
  CMMC
  
*************** SMOID sm_61
*** 145,150 ****
--- 168,174 ----
  SMOIL sm_61 sm_30
  AEMM misa?sm_30=misa?sm_35
  AEMM misa?sm_30=misa?sm_37
+ AEMM misa?sm_30=misa?sm_50
  AEMM misa?sm_30=misa?sm_52
  AEMM misa?sm_30=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOID sm_61
*** 159,164 ****
--- 183,189 ----
  SMOIL sm_61 sm_37
  AEMM misa?sm_37=misa?sm_30
  AEMM misa?sm_37=misa?sm_35
+ AEMM misa?sm_37=misa?sm_50
  AEMM misa?sm_37=misa?sm_52
  AEMM misa?sm_37=misa?sm_53
  AEMM .=misa?sm_61
*************** AEMM .=misa?sm_80
*** 168,176 ****
  AEMM .=misa?sm_89
  CMMC
  
! BEGIN '--with-arch=sm_61', '--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_61,sm_70,sm_75,sm_80,sm_89'
  SMOID sm_61
! SMOIL sm_61 sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75 sm_80 sm_89
  AEMM .=misa?sm_61
  CMMC
  
--- 193,201 ----
  AEMM .=misa?sm_89
  CMMC
  
! BEGIN '--with-arch=sm_61', '--with-multilib-list=sm_30,sm_35,sm_37,sm_50,sm_52,sm_61,sm_70,sm_75,sm_80,sm_89'
  SMOID sm_61
! SMOIL sm_61 sm_30 sm_35 sm_37 sm_50 sm_52 sm_53 sm_70 sm_75 sm_80 sm_89
  AEMM .=misa?sm_61
  CMMC
  
*************** SMOIL sm_70
*** 181,186 ****
--- 206,212 ----
  AEMM .=misa?sm_30
  AEMM .=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOID sm_70
*** 195,200 ****
--- 221,227 ----
  SMOIL sm_70 sm_30
  AEMM misa?sm_30=misa?sm_35
  AEMM misa?sm_30=misa?sm_37
+ AEMM misa?sm_30=misa?sm_50
  AEMM misa?sm_30=misa?sm_52
  AEMM misa?sm_30=misa?sm_53
  AEMM misa?sm_30=misa?sm_61
*************** SMOIL sm_70 sm_53
*** 210,215 ****
--- 237,243 ----
  AEMM misa?sm_53=misa?sm_30
  AEMM misa?sm_53=misa?sm_35
  AEMM misa?sm_53=misa?sm_37
+ AEMM misa?sm_53=misa?sm_50
  AEMM misa?sm_53=misa?sm_52
  AEMM misa?sm_53=misa?sm_61
  AEMM .=misa?sm_70
*************** SMOID sm_70
*** 223,228 ****
--- 251,257 ----
  SMOIL sm_70 sm_53 sm_30
  AEMM misa?sm_30=misa?sm_35
  AEMM misa?sm_30=misa?sm_37
+ AEMM misa?sm_30=misa?sm_50
  AEMM misa?sm_30=misa?sm_52
  AEMM misa?sm_53=misa?sm_61
  AEMM .=misa?sm_70
*************** SMOID sm_75
*** 237,242 ****
--- 266,272 ----
  SMOIL sm_75 sm_30
  AEMM misa?sm_30=misa?sm_35
  AEMM misa?sm_30=misa?sm_37
+ AEMM misa?sm_30=misa?sm_50
  AEMM misa?sm_30=misa?sm_52
  AEMM misa?sm_30=misa?sm_53
  AEMM misa?sm_30=misa?sm_61
*************** SMOIL sm_75 sm_53
*** 252,257 ****
--- 282,288 ----
  AEMM misa?sm_53=misa?sm_30
  AEMM misa?sm_53=misa?sm_35
  AEMM misa?sm_53=misa?sm_37
+ AEMM misa?sm_53=misa?sm_50
  AEMM misa?sm_53=misa?sm_52
  AEMM misa?sm_53=misa?sm_61
  AEMM misa?sm_53=misa?sm_70
*************** SMOID sm_75
*** 265,270 ****
--- 296,302 ----
  SMOIL sm_75 sm_30 sm_53
  AEMM misa?sm_30=misa?sm_35
  AEMM misa?sm_30=misa?sm_37
+ AEMM misa?sm_30=misa?sm_50
  AEMM misa?sm_30=misa?sm_52
  AEMM misa?sm_53=misa?sm_61
  AEMM misa?sm_53=misa?sm_70
*************** SMOIL sm_80
*** 280,285 ****
--- 312,318 ----
  AEMM .=misa?sm_30
  AEMM .=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOID sm_80
*** 294,299 ****
--- 327,333 ----
  SMOIL sm_80 sm_30
  AEMM misa?sm_30=misa?sm_35
  AEMM misa?sm_30=misa?sm_37
+ AEMM misa?sm_30=misa?sm_50
  AEMM misa?sm_30=misa?sm_52
  AEMM misa?sm_30=misa?sm_53
  AEMM misa?sm_30=misa?sm_61
*************** SMOIL sm_80 sm_75
*** 309,314 ****
--- 343,349 ----
  AEMM misa?sm_75=misa?sm_30
  AEMM misa?sm_75=misa?sm_35
  AEMM misa?sm_75=misa?sm_37
+ AEMM misa?sm_75=misa?sm_50
  AEMM misa?sm_75=misa?sm_52
  AEMM misa?sm_75=misa?sm_53
  AEMM misa?sm_75=misa?sm_61
*************** SMOIL sm_89
*** 324,329 ****
--- 359,365 ----
  AEMM .=misa?sm_30
  AEMM .=misa?sm_35
  AEMM .=misa?sm_37
+ AEMM .=misa?sm_50
  AEMM .=misa?sm_52
  AEMM .=misa?sm_53
  AEMM .=misa?sm_61
*************** SMOIL sm_89 sm_52
*** 339,344 ****
--- 375,381 ----
  AEMM misa?sm_52=misa?sm_30
  AEMM misa?sm_52=misa?sm_35
  AEMM misa?sm_52=misa?sm_37
+ AEMM misa?sm_52=misa?sm_50
  AEMM misa?sm_52=misa?sm_53
  AEMM misa?sm_52=misa?sm_61
  AEMM misa?sm_52=misa?sm_70
*************** AEMM .=misa?sm_89
*** 348,355 ****
  CMMC
  
  
! BEGIN '--with-arch=sm_89', '--with-multilib-list=sm_89,sm_30,sm_35,sm_37,sm_52,sm_53,sm_61,sm_70,sm_75,sm_80'
  SMOID sm_89
! SMOIL sm_89 sm_30 sm_35 sm_37 sm_52 sm_53 sm_61 sm_70 sm_75 sm_80
  AEMM .=misa?sm_89
  CMMC
--- 385,392 ----
  CMMC
  
  
! BEGIN '--with-arch=sm_89', '--with-multilib-list=sm_89,sm_30,sm_35,sm_37,sm_50,sm_52,sm_53,sm_61,sm_70,sm_75,sm_80'
  SMOID sm_89
! SMOIL sm_89 sm_30 sm_35 sm_37 sm_50 sm_52 sm_53 sm_61 sm_70 sm_75 sm_80
  AEMM .=misa?sm_89
  CMMC
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/nvptx-gen.h gcc-16-20260419/gcc/config/nvptx/nvptx-gen.h
*** gcc-16-20260412/gcc/config/nvptx/nvptx-gen.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/nvptx-gen.h	Sun Apr 19 22:32:06 2026
***************
*** 24,29 ****
--- 24,30 ----
  #define TARGET_SM30 (ptx_isa_option >= PTX_ISA_SM30)
  #define TARGET_SM35 (ptx_isa_option >= PTX_ISA_SM35)
  #define TARGET_SM37 (ptx_isa_option >= PTX_ISA_SM37)
+ #define TARGET_SM50 (ptx_isa_option >= PTX_ISA_SM50)
  #define TARGET_SM52 (ptx_isa_option >= PTX_ISA_SM52)
  #define TARGET_SM53 (ptx_isa_option >= PTX_ISA_SM53)
  #define TARGET_SM61 (ptx_isa_option >= PTX_ISA_SM61)
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/nvptx-gen.opt gcc-16-20260419/gcc/config/nvptx/nvptx-gen.opt
*** gcc-16-20260412/gcc/config/nvptx/nvptx-gen.opt	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/nvptx-gen.opt	Sun Apr 19 22:32:06 2026
*************** EnumValue
*** 33,38 ****
--- 33,41 ----
  Enum(ptx_isa) String(sm_37) Value(PTX_ISA_SM37)
  
  EnumValue
+ Enum(ptx_isa) String(sm_50) Value(PTX_ISA_SM50)
+ 
+ EnumValue
  Enum(ptx_isa) String(sm_52) Value(PTX_ISA_SM52)
  
  EnumValue
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/nvptx-opts.h gcc-16-20260419/gcc/config/nvptx/nvptx-opts.h
*** gcc-16-20260412/gcc/config/nvptx/nvptx-opts.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/nvptx-opts.h	Sun Apr 19 22:32:06 2026
*************** enum ptx_version
*** 38,43 ****
--- 38,44 ----
    PTX_VERSION_unset,
    PTX_VERSION_default = PTX_VERSION_unset,
    PTX_VERSION_3_1,
+   PTX_VERSION_4_0,
    PTX_VERSION_4_1,
    PTX_VERSION_4_2,
    PTX_VERSION_5_0,
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/nvptx-sm.def gcc-16-20260419/gcc/config/nvptx/nvptx-sm.def
*** gcc-16-20260412/gcc/config/nvptx/nvptx-sm.def	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/nvptx-sm.def	Sun Apr 19 22:32:06 2026
***************
*** 23,28 ****
--- 23,29 ----
  NVPTX_SM (30, NVPTX_SM_SEP)
  NVPTX_SM (35, NVPTX_SM_SEP)
  NVPTX_SM (37, NVPTX_SM_SEP)
+ NVPTX_SM (50, NVPTX_SM_SEP)
  NVPTX_SM (52, NVPTX_SM_SEP)
  NVPTX_SM (53, NVPTX_SM_SEP)
  NVPTX_SM (61, NVPTX_SM_SEP)
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/nvptx.cc gcc-16-20260419/gcc/config/nvptx/nvptx.cc
*** gcc-16-20260412/gcc/config/nvptx/nvptx.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/nvptx.cc	Sun Apr 19 22:32:06 2026
*************** first_ptx_version_supporting_sm (enum pt
*** 215,220 ****
--- 215,222 ----
        return /* PTX_VERSION_3_0 not defined */ PTX_VERSION_3_1;
      case PTX_ISA_SM35:
        return PTX_VERSION_3_1;
+     case PTX_ISA_SM50:
+       return PTX_VERSION_4_0;
      case PTX_ISA_SM37:
      case PTX_ISA_SM52:
        return PTX_VERSION_4_1;
*************** ptx_version_to_string (enum ptx_version
*** 266,271 ****
--- 268,275 ----
      {
      case PTX_VERSION_3_1:
        return "3.1";
+     case PTX_VERSION_4_0:
+       return "4.0";
      case PTX_VERSION_4_1:
        return "4.1";
      case PTX_VERSION_4_2:
*************** ptx_version_to_number (enum ptx_version
*** 294,299 ****
--- 298,305 ----
      {
      case PTX_VERSION_3_1:
        return major_p ? 3 : 1;
+     case PTX_VERSION_4_0:
+       return major_p ? 4 : 0;
      case PTX_VERSION_4_1:
        return major_p ? 4 : 1;
      case PTX_VERSION_4_2:
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/nvptx.h gcc-16-20260419/gcc/config/nvptx/nvptx.h
*** gcc-16-20260412/gcc/config/nvptx/nvptx.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/nvptx.h	Sun Apr 19 22:32:06 2026
***************
*** 99,104 ****
--- 99,105 ----
  
  /* There are no 'TARGET_PTX_3_1' and smaller conditionals: our baseline is
     PTX ISA Version 3.1.  */
+ #define TARGET_PTX_4_0 (ptx_version_option >= PTX_VERSION_4_0)
  #define TARGET_PTX_4_1 (ptx_version_option >= PTX_VERSION_4_1)
  #define TARGET_PTX_4_2 (ptx_version_option >= PTX_VERSION_4_2)
  #define TARGET_PTX_5_0 (ptx_version_option >= PTX_VERSION_5_0)
diff -Nrcpad gcc-16-20260412/gcc/config/nvptx/nvptx.opt gcc-16-20260419/gcc/config/nvptx/nvptx.opt
*** gcc-16-20260412/gcc/config/nvptx/nvptx.opt	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/nvptx/nvptx.opt	Sun Apr 19 22:32:06 2026
*************** march-map=sm_37
*** 76,82 ****
  Target RejectNegative Alias(misa=,sm_37)
  
  march-map=sm_50
! Target RejectNegative Alias(misa=,sm_37)
  
  march-map=sm_52
  Target RejectNegative Alias(misa=,sm_52)
--- 76,82 ----
  Target RejectNegative Alias(misa=,sm_37)
  
  march-map=sm_50
! Target RejectNegative Alias(misa=,sm_50)
  
  march-map=sm_52
  Target RejectNegative Alias(misa=,sm_52)
*************** EnumValue
*** 173,178 ****
--- 173,181 ----
  Enum(ptx_version) String(3.1) Value(PTX_VERSION_3_1)
  
  EnumValue
+ Enum(ptx_version) String(4.0) Value(PTX_VERSION_4_0)
+ 
+ EnumValue
  Enum(ptx_version) String(4.1) Value(PTX_VERSION_4_1)
  
  EnumValue
diff -Nrcpad gcc-16-20260412/gcc/config/riscv/riscv.cc gcc-16-20260419/gcc/config/riscv/riscv.cc
*** gcc-16-20260412/gcc/config/riscv/riscv.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/riscv/riscv.cc	Sun Apr 19 22:32:06 2026
*************** riscv_bitint_type_info (int n, struct bi
*** 14926,14932 ****
      info->abi_limb_mode = DImode;
  
    info->big_endian = TARGET_BIG_ENDIAN;
!   info->extended = true;
    return true;
  }
  
--- 14926,14932 ----
      info->abi_limb_mode = DImode;
  
    info->big_endian = TARGET_BIG_ENDIAN;
!   info->extended = bitint_ext_full;
    return true;
  }
  
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/mma.md gcc-16-20260419/gcc/config/rs6000/mma.md
*** gcc-16-20260412/gcc/config/rs6000/mma.md	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/mma.md	Sun Apr 19 22:32:06 2026
***************
*** 30,35 ****
--- 30,36 ----
  
  (define_c_enum "unspec"
    [UNSPEC_VSX_ASSEMBLE
+    UNSPEC_MMA_EXTRACT
     UNSPEC_MMA_PMXVBF16GER2
     UNSPEC_MMA_PMXVBF16GER2NN
     UNSPEC_MMA_PMXVBF16GER2NP
***************
*** 397,404 ****
     (match_operand 2 "const_0_to_1_operand")]
    "TARGET_MMA"
  {
!   int regoff = INTVAL (operands[2]) * 16;
!   rtx src = simplify_gen_subreg (V16QImode, operands[1], OOmode, regoff);
    emit_move_insn (operands[0], src);
    DONE;
  })
--- 398,426 ----
     (match_operand 2 "const_0_to_1_operand")]
    "TARGET_MMA"
  {
!   rtx src;
!   int regoff = INTVAL (operands[2]);
!   src = gen_rtx_UNSPEC (V16QImode,
!                         gen_rtvec (2, operands[1], GEN_INT (regoff)),
!                         UNSPEC_MMA_EXTRACT);
!   emit_move_insn (operands[0], src);
!   DONE;
! })
! 
! (define_insn_and_split "*vsx_disassemble_pair"
!   [(set (match_operand:V16QI 0 "mma_disassemble_output_operand" "=mwa")
!        (unspec:V16QI [(match_operand:OO 1 "vsx_register_operand" "wa")
!                       (match_operand 2 "const_0_to_1_operand")]
!                       UNSPEC_MMA_EXTRACT))]
!   "TARGET_MMA
!    && vsx_register_operand (operands[1], OOmode)"
!   "#"
!   "&& reload_completed"
!   [(const_int 0)]
! {
!   int reg = REGNO (operands[1]);
!   int regoff = INTVAL (operands[2]);
!   rtx src = gen_rtx_REG (V16QImode, reg + regoff);
    emit_move_insn (operands[0], src);
    DONE;
  })
***************
*** 450,457 ****
     (match_operand 2 "const_0_to_3_operand")]
    "TARGET_MMA"
  {
!   int regoff = INTVAL (operands[2]) * 16;
!   rtx src = simplify_gen_subreg (V16QImode, operands[1], XOmode, regoff);
    emit_move_insn (operands[0], src);
    DONE;
  })
--- 472,500 ----
     (match_operand 2 "const_0_to_3_operand")]
    "TARGET_MMA"
  {
!   rtx src;
!   int regoff = INTVAL (operands[2]);
!   src = gen_rtx_UNSPEC (V16QImode,
!                         gen_rtvec (2, operands[1], GEN_INT (regoff)),
!                         UNSPEC_MMA_EXTRACT);
!   emit_move_insn (operands[0], src);
!   DONE;
! })
! 
! (define_insn_and_split "*mma_disassemble_acc"
!   [(set (match_operand:V16QI 0 "mma_disassemble_output_operand" "=mwa")
!        (unspec:V16QI [(match_operand:XO 1 "fpr_reg_operand" "d")
!                       (match_operand 2 "const_0_to_3_operand")]
!                       UNSPEC_MMA_EXTRACT))]
!   "TARGET_MMA
!    && fpr_reg_operand (operands[1], XOmode)"
!   "#"
!   "&& reload_completed"
!   [(const_int 0)]
! {
!   int reg = REGNO (operands[1]);
!   int regoff = INTVAL (operands[2]);
!   rtx src = gen_rtx_REG (V16QImode, reg + regoff);
    emit_move_insn (operands[0], src);
    DONE;
  })
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/rs6000-builtin.cc gcc-16-20260419/gcc/config/rs6000/rs6000-builtin.cc
*** gcc-16-20260412/gcc/config/rs6000/rs6000-builtin.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/rs6000-builtin.cc	Sun Apr 19 22:32:06 2026
*************** rs6000_expand_builtin (tree exp, rtx tar
*** 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)
      {
--- 3284,3289 ----
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/rs6000-builtins.def gcc-16-20260419/gcc/config/rs6000/rs6000-builtins.def
*** gcc-16-20260412/gcc/config/rs6000/rs6000-builtins.def	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/rs6000-builtins.def	Sun Apr 19 22:32:06 2026
***************
*** 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]
--- 246,251 ----
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/rs6000-c.cc gcc-16-20260419/gcc/config/rs6000/rs6000-c.cc
*** gcc-16-20260412/gcc/config/rs6000/rs6000-c.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/rs6000-c.cc	Sun Apr 19 22:32:06 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 <= 6);
  
    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 <= 4);
  
    tree call;
    switch (n)
*************** altivec_build_resolved_builtin (tree *ar
*** 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 ();
      }
--- 920,925 ----
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/rs6000-overload.def gcc-16-20260419/gcc/config/rs6000/rs6000-overload.def
*** gcc-16-20260412/gcc/config/rs6000/rs6000-overload.def	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/rs6000-overload.def	Sun Apr 19 22:32:06 2026
***************
*** 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
--- 79,84 ----
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/rs6000-protos.h gcc-16-20260419/gcc/config/rs6000/rs6000-protos.h
*** gcc-16-20260412/gcc/config/rs6000/rs6000-protos.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/rs6000-protos.h	Sun Apr 19 22:32:06 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[], bool local);
  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[]);
  extern rtx swap_endian_selector_for_mode (machine_mode mode);
  
  extern void rs6000_expand_atomic_exchange (rtx op[]);
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/rs6000.cc gcc-16-20260419/gcc/config/rs6000/rs6000.cc
*** gcc-16-20260412/gcc/config/rs6000/rs6000.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/rs6000.cc	Sun Apr 19 22:32:06 2026
*************** emit_unlikely_jump (rtx cond, rtx label)
*** 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)
      {
--- 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)
      {
*************** emit_load_locked (machine_mode mode, rtx
*** 16779,16785 ****
      default:
        gcc_unreachable ();
      }
!   emit_insn (fn (reg, mem, local));
  }
  
  /* A subroutine of the atomic operation splitters.  Emit a store-conditional
--- 16778,16784 ----
      default:
        gcc_unreachable ();
      }
!   emit_insn (fn (reg, mem));
  }
  
  /* A subroutine of the atomic operation splitters.  Emit a store-conditional
*************** rs6000_finish_atomic_subword (rtx narrow
*** 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;
--- 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;
*************** rs6000_expand_atomic_compare_and_swap (r
*** 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)
--- 17011,17017 ----
      }
    label2 = gen_rtx_LABEL_REF (VOIDmode, gen_label_rtx ());
  
!   emit_load_locked (mode, retval, mem);
  
    x = retval;
    if (mask)
*************** rs6000_expand_atomic_exchange (rtx opera
*** 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)
--- 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)
*************** rs6000_expand_atomic_op (enum rtx_code c
*** 17215,17221 ****
    if (before == NULL_RTX)
      before = gen_reg_rtx (mode);
  
!   emit_load_locked (mode, before, mem, const0_rtx);
  
    if (code == NOT)
      {
--- 17214,17220 ----
    if (before == NULL_RTX)
      before = gen_reg_rtx (mode);
  
!   emit_load_locked (mode, before, mem);
  
    if (code == NOT)
      {
diff -Nrcpad gcc-16-20260412/gcc/config/rs6000/sync.md gcc-16-20260419/gcc/config/rs6000/sync.md
*** gcc-16-20260412/gcc/config/rs6000/sync.md	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/rs6000/sync.md	Sun Apr 19 22:32:06 2026
***************
*** 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.
--- 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.
***************
*** 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];
--- 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];
***************
*** 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
--- 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
***************
*** 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")])
  
--- 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")])
  
***************
*** 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;
  })
  
--- 411,417 ----
     (match_operand:SI 7 "const_int_operand")]		;; model fail
    ""
  {
!   rs6000_expand_atomic_compare_and_swap (operands);
    DONE;
  })
  
diff -Nrcpad gcc-16-20260412/gcc/config/s390/s390.cc gcc-16-20260419/gcc/config/s390/s390.cc
*** gcc-16-20260412/gcc/config/s390/s390.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/s390/s390.cc	Sun Apr 19 22:32:06 2026
*************** s390_bitint_type_info (int n, struct bit
*** 18851,18857 ****
      info->limb_mode = DImode;
    info->abi_limb_mode = info->limb_mode;
    info->big_endian = true;
!   info->extended = true;
    return true;
  }
  
--- 18851,18857 ----
      info->limb_mode = DImode;
    info->abi_limb_mode = info->limb_mode;
    info->big_endian = true;
!   info->extended = bitint_ext_full;
    return true;
  }
  
diff -Nrcpad gcc-16-20260412/gcc/config/stormy16/stormy16.cc gcc-16-20260419/gcc/config/stormy16/stormy16.cc
*** gcc-16-20260412/gcc/config/stormy16/stormy16.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/stormy16/stormy16.cc	Sun Apr 19 22:32:06 2026
*************** xstormy16_build_builtin_va_list (void)
*** 1430,1435 ****
--- 1430,1436 ----
    TYPE_NAME (record) = type_decl;
    TYPE_FIELDS (record) = f_1;
    DECL_CHAIN (f_1) = f_2;
+   TREE_PUBLIC (type_decl) = 1;
  
    layout_type (record);
  
diff -Nrcpad gcc-16-20260412/gcc/config/xtensa/xtensa.cc gcc-16-20260419/gcc/config/xtensa/xtensa.cc
*** gcc-16-20260412/gcc/config/xtensa/xtensa.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config/xtensa/xtensa.cc	Sun Apr 19 22:32:06 2026
*************** xtensa_build_builtin_va_list (void)
*** 3842,3847 ****
--- 3842,3848 ----
    TYPE_FIELDS (record) = f_stk;
    DECL_CHAIN (f_stk) = f_reg;
    DECL_CHAIN (f_reg) = f_ndx;
+   TREE_PUBLIC (type_decl) = 1;
  
    layout_type (record);
    return record;
diff -Nrcpad gcc-16-20260412/gcc/config.gcc gcc-16-20260419/gcc/config.gcc
*** gcc-16-20260412/gcc/config.gcc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/config.gcc	Sun Apr 19 22:32:06 2026
*************** aarch64*-*-*)
*** 370,376 ****
  	c_target_objs="aarch64-c.o"
  	cxx_target_objs="aarch64-c.o"
  	d_target_objs="aarch64-d.o"
! 	extra_objs="aarch64-builtins.o aarch-common.o aarch64-elf-metadata.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o aarch64-sve-builtins-sve2.o aarch64-sve-builtins-sme.o cortex-a57-fma-steering.o aarch64-speculation.o aarch-bti-insert.o aarch64-early-ra.o aarch64-ldp-fusion.o aarch64-sched-dispatch.o aarch64-json-tunings-printer.o aarch64-json-tunings-parser.o"
  	target_gtfiles="\$(srcdir)/config/aarch64/aarch64-protos.h \$(srcdir)/config/aarch64/aarch64-builtins.h \$(srcdir)/config/aarch64/aarch64-builtins.cc \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
  	target_has_targetm_common=yes
  	;;
--- 370,376 ----
  	c_target_objs="aarch64-c.o"
  	cxx_target_objs="aarch64-c.o"
  	d_target_objs="aarch64-d.o"
! 	extra_objs="aarch64-builtins.o aarch-common.o aarch64-elf-metadata.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o aarch64-sve-builtins-sve2.o aarch64-sve-builtins-sme.o cortex-a57-fma-steering.o aarch64-speculation.o aarch-bti-insert.o aarch64-early-ra.o aarch64-ldp-fusion.o aarch64-sched-dispatch.o aarch64-json-tunings-printer.o aarch64-json-tunings-parser.o aarch64-narrow-gp-writes.o"
  	target_gtfiles="\$(srcdir)/config/aarch64/aarch64-protos.h \$(srcdir)/config/aarch64/aarch64-builtins.h \$(srcdir)/config/aarch64/aarch64-builtins.cc \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
  	target_has_targetm_common=yes
  	;;
*************** case "${target}" in
*** 5804,5810 ****
  			case $nvptx_multilib in
  			#TODO 'sm_[...]' list per 'nvptx-sm.def'.
  			sm_30 | sm_35 | sm_37 \
! 			| sm_52 | sm_53 \
  			| sm_61 \
  			| sm_70 | sm_75 \
  			| sm_80 | sm_89 )
--- 5804,5810 ----
  			case $nvptx_multilib in
  			#TODO 'sm_[...]' list per 'nvptx-sm.def'.
  			sm_30 | sm_35 | sm_37 \
! 			| sm_50 | sm_52 | sm_53 \
  			| sm_61 \
  			| sm_70 | sm_75 \
  			| sm_80 | sm_89 )
diff -Nrcpad gcc-16-20260412/gcc/cp/ChangeLog gcc-16-20260419/gcc/cp/ChangeLog
*** gcc-16-20260412/gcc/cp/ChangeLog	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/ChangeLog	Sun Apr 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,236 ----
+ 2026-04-17  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* cp-tree.h (reflection_function_template_p): Change the
+ 	parameter to const_tree.
+ 	* reflect.cc (valid_splice_for_member_access_p): Use
+ 	reflection_function_template_p.
+ 	(reflection_function_template_p): Check DECL_FUNCTION_TEMPLATE_P
+ 	instead of really_overloaded_fn.  Unwrap BASELINKs and OVERLOADs.
+ 	Adjust the parameter type.
+ 
+ 2026-04-17  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* reflect.cc (splice): Detect a null reflection.
+ 
+ 2026-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* lex.cc (cxx_init): Don't call cpp_warn on contract_assert,
+ 	instead call it on pre and post.
+ 
+ 2026-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123783
+ 	* reflect.cc (splice): Reject splicing of function parameters.
+ 
+ 2026-04-17  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/124632
+ 	* constexpr.cc (cxx_eval_call_expression): Unshare bindings
+ 	sooner.
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* reflect.cc (dump_data_member_spec): Temporarily ignore
+ 	-Wformat and -Wformat-diag warnings.
+ 
+ 2026-04-16  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124614
+ 	* cp-tree.h (valid_splice_for_member_access_p): Declare.
+ 	(dump_data_member_spec): Declare.
+ 	* error.cc (dump_expr) <case REFLECT_EXPR>: Print a data member
+ 	description.
+ 	* parser.cc (cp_parser_splice_expression): Use
+ 	valid_splice_for_member_access_p.
+ 	* pt.cc (tsubst_splice_expr): Likewise.
+ 	* reflect.cc (dump_data_member_spec): New.
+ 	(eval_display_string_of): Use it.
+ 	(valid_splice_for_member_access_p): New.
+ 	(check_splice_expr): Check that we got
+ 	valid_splice_for_member_access_p for a member access.
+ 	* typeck.cc (finish_class_member_access_expr): Use
+ 	valid_splice_for_member_access_p.
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124120
+ 	* pt.cc (finish_expansion_stmt): Give iter variable an artificial
+ 	name.
+ 
+ 2026-04-16  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/123346
+ 	* constexpr.cc (init_subob_ctx): Do initialize new_ctx.ctor
+ 	for an empty union member.
+ 
+ 2026-04-16  Iain Sandoe  <iains.gcc@gmail.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/124648
+ 	* cp-tree.h (DECL_CONTRACT_CAPTURE_P): New.
+ 	* parser.cc (cp_parser_lambda_body): Scan the captures for
+ 	ones were only added in contract assertion scopes.  Issue
+ 	errors for those found.
+ 	* semantics.cc (process_outer_var_ref): Mark implicit
+ 	captures that occur in contract assertion scopes.  Clear
+ 	the mark if the entity is subsequently captured 'normally'.
+ 	(set_contract_capture_flag): New.
+ 
+ 2026-04-16  Iain Sandoe  <iains.gcc@gmail.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	* contracts.cc (view_as_const): Check for const-qualified
+ 	class pointer before wrapping it.
+ 	* parser.cc (cp_parser_late_contract_condition): Use revised
+ 	handling of const-ification of class pointers.
+ 	(cp_parser_contract_assert): Likewise.
+ 	(cp_parser_function_contract_specifier): Likewise.
+ 
+ 2026-04-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/120338
+ 	* decl.cc (cp_finish_decl): Set DECL_INITIAL to error_mark_node
+ 	instead of NULL_TREE for deleted main.
+ 
+ 2026-04-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123783
+ 	* lambda.cc (add_capture): When trying to capture something in
+ 	an instantiation of generic lambda, give an error instead of an ICE.
+ 
+ 2026-04-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124824
+ 	* decl.cc (cp_finish_decl): Sink !consteval_only_p check to
+ 	only guard the varpool_node::get_create call.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124755
+ 	* constexpr.cc (cxx_eval_constant_expression): If TARGET_EXPR_INITIAL
+ 	throws and !is_complex and type is neither aggregate nor vector,
+ 	call ctx->global->put_value (slot, NULL) before returning.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/117133
+ 	PR c++/124768
+ 	PR c++/124773
+ 	* mangle.cc (unmangled_name_p): Don't mangle internal extern "C"
+ 	variables.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121643
+ 	PR c++/123975
+ 	* coroutines.cc (build_co_await): Pass rvalue to await_suspend.
+ 	(expand_one_await_expression): Fix await_suspend surgery.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121961
+ 	* coroutines.cc (build_actor_fn): Move the delete label before
+ 	the refcount handling.
+ 	(cp_coroutine_transform::build_ramp_function): Decrement refcount
+ 	after destroying gro.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* pt.cc (finish_expansion_stmt): Implement CWG3149 - Rvalues in
+ 	destructuring expansion statements.  For esk_destructuring, if
+ 	expansion_init is not lvalue_p, wrap init into a static_cast
+ 	to decltype of destruct_decls[i].
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* mangle.cc (write_reflection): Adjust grammar for type alias
+ 	reflections.  Don't use write_prefix on arg, instead
+ 	write_prefix its mangling context, write_unqualified_name of
+ 	the alias, optionally write_template_args, append underscore
+ 	and write_type the original type.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124862
+ 	* decl.cc (cp_decomp_size): If btype is different from type,
+ 	check if it is accessible.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124850
+ 	* typeck.cc (cxx_mark_addressable): For DECL_ANON_UNION_VAR_P vars
+ 	also mark their DECL_VALUE_EXPR.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* reflect.cc (adjust_array_elt): New function.
+ 	(get_range_elts): Implement LWG4483 - Multidimensional arrays are not
+ 	supported by meta::reflect_constant_array and related functions.
+ 	Handle ARRAY_TYPE valuet.  Don't unshare_expr in the class valuet case,
+ 	get_template_param_object will unshare.
+ 
+ 2026-04-14  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124544
+ 	* tree.cc (strip_typedefs_expr) <case REFLECT_EXPR>: Don't
+ 	recurse into a type operand.
+ 	(cp_tree_equal) <case REFLECT_EXPR>: For a reflection of an
+ 	alias, also compare TYPE_NAMEs directly.
+ 
+ 2026-04-14  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* cp-tree.h (reflection_function_template_p): Declare.
+ 	* parser.cc (cp_parser_splice_expression): Use
+ 	reflection_function_template_p instead of really_overloaded_fn.
+ 	* reflect.cc (check_splice_expr): Likewise.
+ 	(reflection_function_template_p): New.
+ 
+ 2026-04-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123237
+ 	PR c++/124771
+ 	PR c++/124842
+ 	* mangle.cc (write_splice): New.
+ 	(write_prefix): Call write_splice for SPLICE_SCOPE.
+ 	(write_type): Likewise.
+ 	(write_expression): Call write_splice for dependent_splice_p.
+ 	(write_reflection): Handle the "tt" and "de" prefixes.
+ 	* reflect.cc (reflection_mangle_prefix): For
+ 	DECL_TEMPLATE_TEMPLATE_PARM_P, use the prefix "tt".  For
+ 	dependent reflections, use "de".
+ 
+ 2026-04-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124835
+ 	* parser.cc (cp_parser_decltype_expr): Check that [: :] is
+ 	followed by a close paren before declaring it an unparenthesized
+ 	splice-expression.
+ 
+ 2026-04-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/103901
+ 	PR c++/123566
+ 	* pt.cc (push_template_decl): Sorry on local class in lambda in
+ 	template parm list.
+ 
+ 2026-04-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/122632
+ 	* pt.cc (tsubst_exception_specification): Add cp_unevaluated.
+ 
+ 2026-04-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/122884
+ 	* pt.cc (reconstruct_lambda_capture_pack): New.
+ 	(tsubst_pack_expansion): Use it.
+ 	(tsubst_decl): Handle capture proxy.
+ 	(tsubst): Handle lambda closure.
+ 	(tsubst_expr): Handle closure field.
+ 	(tsubst_lambda_expr): Copy closure location.
+ 	* constraint.cc (satisfy_declaration_constraints): Set up
+ 	local_specializations for a lambda.
+ 
  2026-04-10  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c++/124831
diff -Nrcpad gcc-16-20260412/gcc/cp/constexpr.cc gcc-16-20260419/gcc/cp/constexpr.cc
*** gcc-16-20260412/gcc/cp/constexpr.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/constexpr.cc	Sun Apr 19 22:32:06 2026
*************** cxx_eval_call_expression (const constexp
*** 4395,4400 ****
--- 4395,4410 ----
  	      *entry = new_call;
  	      entry->result (ctx->manifestly_const_eval) = unknown_type_node;
  	      fb.preserve ();
+ 
+ 	      /* Unshare args going into the hash table to separate them
+ 		 from the caller's context, for better GC and to avoid
+ 		 problems with verify_gimple.  */
+ 	      tree bound = new_call.bindings;
+ 	      for (int i = 0; i < TREE_VEC_LENGTH (bound); ++i)
+ 		{
+ 		  tree &arg = TREE_VEC_ELT (bound, i);
+ 		  arg = unshare_expr_without_location (arg);
+ 		}
  	    }
  	}
        /* Calls that are in progress have their result set to unknown_type_node,
*************** cxx_eval_call_expression (const constexp
*** 4453,4465 ****
  	      tree arg = TREE_VEC_ELT (bound, i);
  	      if (entry)
  		{
! 		  /* Unshare args going into the hash table to separate them
! 		     from the caller's context, for better GC and to avoid
! 		     problems with verify_gimple.  */
! 		  arg = unshare_expr_without_location (arg);
! 		  TREE_VEC_ELT (bound, i) = arg;
! 
! 		  /* And then unshare again so the callee doesn't change the
  		     argument values in the hash table. XXX Could we unshare
  		     lazily in cxx_eval_store_expression?  */
  		  arg = unshare_constructor (arg);
--- 4463,4469 ----
  	      tree arg = TREE_VEC_ELT (bound, i);
  	      if (entry)
  		{
! 		  /* Unshare again so the callee doesn't change the
  		     argument values in the hash table. XXX Could we unshare
  		     lazily in cxx_eval_store_expression?  */
  		  arg = unshare_constructor (arg);
*************** init_subob_ctx (const constexpr_ctx *ctx
*** 6692,6699 ****
    if (!AGGREGATE_TYPE_P (type) && !VECTOR_TYPE_P (type))
      /* A non-aggregate member doesn't get its own CONSTRUCTOR.  */
      return;
    if (VECTOR_TYPE_P (type)
!       && VECTOR_TYPE_P (TREE_TYPE (ctx->ctor))
        && index == NULL_TREE)
      /* A vector inside of a vector CONSTRUCTOR, e.g. when a larger
         vector is constructed from smaller vectors, doesn't get its own
--- 6696,6712 ----
    if (!AGGREGATE_TYPE_P (type) && !VECTOR_TYPE_P (type))
      /* A non-aggregate member doesn't get its own CONSTRUCTOR.  */
      return;
+ 
+   tree ctxtype = NULL_TREE;
+   if (ctx->ctor)
+     ctxtype = TREE_TYPE (ctx->ctor);
+   else if (ctx->object)
+     ctxtype = TREE_TYPE (ctx->object);
+   else
+     gcc_unreachable ();
+ 
    if (VECTOR_TYPE_P (type)
!       && VECTOR_TYPE_P (ctxtype)
        && index == NULL_TREE)
      /* A vector inside of a vector CONSTRUCTOR, e.g. when a larger
         vector is constructed from smaller vectors, doesn't get its own
*************** init_subob_ctx (const constexpr_ctx *ctx
*** 6712,6720 ****
  	new_ctx.object = build_ctor_subob_ref (index, type, ctx->object);
      }
  
!   if (is_empty_class (type))
!     /* Leave ctor null for an empty subobject, they aren't represented in the
!        result of evaluation.  */
      new_ctx.ctor = NULL_TREE;
    else
      {
--- 6725,6734 ----
  	new_ctx.object = build_ctor_subob_ref (index, type, ctx->object);
      }
  
!   if (is_empty_class (type)
!       && TREE_CODE (ctxtype) != UNION_TYPE)
!     /* Leave ctor null for an empty subobject of a non-union class, they aren't
!        represented in the result of evaluation.  */
      new_ctx.ctor = NULL_TREE;
    else
      {
*************** cxx_eval_constant_expression (const cons
*** 9504,9510 ****
  	if (ctx->save_exprs)
  	  ctx->save_exprs->safe_push (slot);
  	if (*jump_target)
! 	  return NULL_TREE;
  	if (!is_complex)
  	  {
  	    r = unshare_constructor (r);
--- 9518,9533 ----
  	if (ctx->save_exprs)
  	  ctx->save_exprs->safe_push (slot);
  	if (*jump_target)
! 	  {
! 	    if (!is_complex
! 		&& !(AGGREGATE_TYPE_P (type) || VECTOR_TYPE_P (type)))
! 	      /* If TARGET_EXPR_INITIAL throws exception and slot's value
! 		 has not been changed yet, CLEANUP_POINT_EXPR handling
! 		 could see there void_node from a previous evaluation
! 		 and complain.  */
! 	      ctx->global->put_value (slot, NULL_TREE);
! 	    return NULL_TREE;
! 	  }
  	if (!is_complex)
  	  {
  	    r = unshare_constructor (r);
diff -Nrcpad gcc-16-20260412/gcc/cp/constraint.cc gcc-16-20260419/gcc/cp/constraint.cc
*** gcc-16-20260412/gcc/cp/constraint.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/constraint.cc	Sun Apr 19 22:32:06 2026
*************** satisfy_declaration_constraints (tree t,
*** 2826,2832 ****
        tree pattern = DECL_TEMPLATE_RESULT (t);
        push_to_top_level ();
        push_access_scope (pattern);
!       result = satisfy_normalized_constraints (norm, args, info);
        pop_access_scope (pattern);
        pop_from_top_level ();
        pop_tinst_level ();
--- 2826,2837 ----
        tree pattern = DECL_TEMPLATE_RESULT (t);
        push_to_top_level ();
        push_access_scope (pattern);
!       {
! 	/* For reconstruct_lambda_capture_pack.  */
! 	local_specialization_stack lss (LAMBDA_FUNCTION_P (t)
! 					? lss_blank : lss_nop);
! 	result = satisfy_normalized_constraints (norm, args, info);
!       }
        pop_access_scope (pattern);
        pop_from_top_level ();
        pop_tinst_level ();
diff -Nrcpad gcc-16-20260412/gcc/cp/contracts.cc gcc-16-20260419/gcc/cp/contracts.cc
*** gcc-16-20260412/gcc/cp/contracts.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/contracts.cc	Sun Apr 19 22:32:06 2026
*************** finish_contract_condition (cp_expr condi
*** 482,489 ****
  tree
  view_as_const (tree decl)
  {
!   if (!contract_const_wrapper_p (decl))
      {
        tree ctype = TREE_TYPE (decl);
        location_t loc =
  	  EXPR_P (decl) ? EXPR_LOCATION (decl) : DECL_SOURCE_LOCATION (decl);
--- 482,491 ----
  tree
  view_as_const (tree decl)
  {
!   if (decl
!       && !CP_TYPE_CONST_P (TREE_TYPE (decl)))
      {
+       gcc_checking_assert (!contract_const_wrapper_p (decl));
        tree ctype = TREE_TYPE (decl);
        location_t loc =
  	  EXPR_P (decl) ? EXPR_LOCATION (decl) : DECL_SOURCE_LOCATION (decl);
diff -Nrcpad gcc-16-20260412/gcc/cp/coroutines.cc gcc-16-20260419/gcc/cp/coroutines.cc
*** gcc-16-20260412/gcc/cp/coroutines.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/coroutines.cc	Sun Apr 19 22:32:06 2026
*************** build_co_await (location_t loc, tree a,
*** 1471,1476 ****
--- 1471,1479 ----
        3. a coroutine handle, we execute the handle.resume() call.  */
    tree awsp_func = NULL_TREE;
    tree h_proxy = get_coroutine_self_handle_proxy (current_function_decl);
+   /* expand_one_await_expression will replace the argument with a prvalue call
+      to from_address, so pass an rvalue now as well.  */
+   h_proxy = move (h_proxy);
    vec<tree, va_gc> *args = make_tree_vector_single (h_proxy);
    tree awsp_call
      = build_new_method_call (e_proxy, awsp_meth, &args, NULL_TREE,
*************** expand_one_await_expression (tree *expr,
*** 2237,2243 ****
      build_new_method_call (dummy_ch, data->hfa_m, &args, NULL_TREE,
  			   LOOKUP_NORMAL, NULL, tf_warning_or_error));
    release_tree_vector (args);
!   CALL_EXPR_ARG (susp_call, call_expr_nargs (susp_call) - 1) = hfa;
  
    bool is_cont = false;
    /* NOTE: final suspend can't resume; the "resume" label in that case
--- 2240,2257 ----
      build_new_method_call (dummy_ch, data->hfa_m, &args, NULL_TREE,
  			   LOOKUP_NORMAL, NULL, tf_warning_or_error));
    release_tree_vector (args);
!   {
!     tree fn = get_callee_fndecl (susp_call);
!     int argno = 0 + DECL_OBJECT_MEMBER_FUNCTION_P (fn);
!     tree &arg = CALL_EXPR_ARG (susp_call, argno);
!     /* Handle await_suspend taking an unusual type (c++/123975).  */
!     tree type = TYPE_ARG_TYPES (TREE_TYPE (fn));
!     type = TREE_VALUE (chain_index (argno, type));
!     hfa = perform_implicit_conversion (type, hfa, tf_warning_or_error);
!     hfa = convert_for_arg_passing (type, hfa, tf_warning_or_error);
!     gcc_checking_assert (same_type_p (TREE_TYPE (arg), TREE_TYPE (hfa)));
!     arg = hfa;
!   }
  
    bool is_cont = false;
    /* NOTE: final suspend can't resume; the "resume" label in that case
*************** build_actor_fn (location_t loc, tree cor
*** 2649,2655 ****
    /* The destroy point numbered #1 is special, in that it is reached from a
       coroutine that is suspended after re-throwing from unhandled_exception().
       This label just invokes the cleanup of promise, param copies and the
!      frame itself.  */
    tree del_promise_label
      = create_named_label_with_ctx (loc, "coro.delete.promise", actor);
    finish_case_label (loc, build_int_cst (short_unsigned_type_node, 1),
--- 2663,2669 ----
    /* The destroy point numbered #1 is special, in that it is reached from a
       coroutine that is suspended after re-throwing from unhandled_exception().
       This label just invokes the cleanup of promise, param copies and the
!      frame itself, if the ramp isn't still keeping them alive.  */
    tree del_promise_label
      = create_named_label_with_ctx (loc, "coro.delete.promise", actor);
    finish_case_label (loc, build_int_cst (short_unsigned_type_node, 1),
*************** build_actor_fn (location_t loc, tree cor
*** 2743,2748 ****
--- 2757,2765 ----
    /* Add in our function body with the co_returns rewritten to final form.  */
    add_stmt (fnbody);
  
+   tree r = build_stmt (loc, LABEL_EXPR, del_promise_label);
+   add_stmt (r);
+ 
    /* We are done with the frame, but if the ramp still has a hold on it
       we should not cleanup.  So decrement the refcount and then return to
       the ramp if it is > 0.  */
*************** build_actor_fn (location_t loc, tree cor
*** 2752,2758 ****
    tree released = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node,
  			      coro_frame_refcount,
  			      build_int_cst (short_unsigned_type_node, 1));
!   tree r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
  				 tf_warning_or_error);
    finish_expr_stmt (r);
    tree cond = build2_loc (loc, NE_EXPR, short_unsigned_type_node,
--- 2769,2775 ----
    tree released = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node,
  			      coro_frame_refcount,
  			      build_int_cst (short_unsigned_type_node, 1));
!   r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
  				 tf_warning_or_error);
    finish_expr_stmt (r);
    tree cond = build2_loc (loc, NE_EXPR, short_unsigned_type_node,
*************** build_actor_fn (location_t loc, tree cor
*** 2765,2772 ****
    finish_if_stmt (ramp_cu_if);
  
    /* Otherwise, do the tail of the function; first cleanups.  */
-   r = build_stmt (loc, LABEL_EXPR, del_promise_label);
-   add_stmt (r);
  
    /* Destructors for the things we built explicitly.
       promise... */
--- 2782,2787 ----
*************** cp_coroutine_transform::build_ramp_funct
*** 5278,5283 ****
--- 5293,5315 ----
        push_cleanup (p, r, /*eh_only*/false);
      }
  
+   /* Now that we've constructed everything in the frame, consider it
+      used...  */
+   r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR,
+ 			    build_int_cst (short_unsigned_type_node, 1),
+ 			    tf_warning_or_error);
+   finish_expr_stmt (r);
+   /* ... but when we finish we want to release that, and we want to do that
+      before the frame cleanups run.  But after the gro cleanup, in case it
+      calls destroy (PR121961).  */
+   tree released
+     = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node,
+ 		  coro_frame_refcount,
+ 		  build_int_cst (short_unsigned_type_node, 1));
+   released = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
+ 				 tf_warning_or_error);
+   push_cleanup (NULL_TREE, released, /*eh_only*/false);
+ 
    tree get_ro
      = coro_build_promise_expression (orig_fn_decl, p,
  				     coro_get_return_object_identifier,
*************** cp_coroutine_transform::build_ramp_funct
*** 5339,5358 ****
  	push_cleanup (coro_gro, coro_gro_cleanup, /*eh_only*/false);
      }
  
!   /* Start the coroutine body, we now have a use of the frame...  */
!   r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR,
! 			    build_int_cst (short_unsigned_type_node, 1),
! 			    tf_warning_or_error);
!   finish_expr_stmt (r);
!   /* ... but when we finish we want to release that, and we want to do that
!      before any of the other cleanups run.  */
!   tree released
!     = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node, coro_frame_refcount,
! 		  build_int_cst (short_unsigned_type_node, 1));
!   released = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
! 				 tf_warning_or_error);
!   push_cleanup (NULL_TREE, released, /*eh_only*/false);
! 
    r = build_call_expr_loc (fn_start, resumer, 1, coro_fp);
    finish_expr_stmt (r);
  
--- 5371,5377 ----
  	push_cleanup (coro_gro, coro_gro_cleanup, /*eh_only*/false);
      }
  
!   /* Start the coroutine body.  */
    r = build_call_expr_loc (fn_start, resumer, 1, coro_fp);
    finish_expr_stmt (r);
  
diff -Nrcpad gcc-16-20260412/gcc/cp/cp-tree.h gcc-16-20260419/gcc/cp/cp-tree.h
*** gcc-16-20260412/gcc/cp/cp-tree.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/cp-tree.h	Sun Apr 19 22:32:06 2026
*************** extern GTY(()) tree cp_global_trees[CPTI
*** 595,600 ****
--- 595,601 ----
        DECL_DECLARED_CONSTINIT_P (in VAR_DECL)
        TYPE_DECL_FOR_LINKAGE_PURPOSES_P (in TYPE_DECL)
     8: DECL_DECLARED_CONSTEXPR_P (in VAR_DECL, FUNCTION_DECL)
+       DECL_CONTRACT_CAPTURE_P (in FIELD_DECL)
  
     Usage of language-independent fields in a language-dependent manner:
  
*************** get_vec_init_expr (tree t)
*** 5387,5392 ****
--- 5388,5400 ----
  #define DECL_NORMAL_CAPTURE_P(NODE) \
    DECL_LANG_FLAG_7 (FIELD_DECL_CHECK (NODE))
  
+ /* True when a field decl relates to a lambda capture that has currently been
+    made to satisfy a use within a contract check.  Reset to false when the
+    capture is required outside a contract check.  Used to diagnose cases where
+    a capture is only made within contract checks.  */
+ #define DECL_CONTRACT_CAPTURE_P(NODE) \
+   DECL_LANG_FLAG_8 (FIELD_DECL_CHECK (NODE))
+ 
  /* Nonzero if TYPE is an anonymous union or struct type.  We have to use a
     flag for this because "A union for which objects or pointers are
     declared is not an anonymous union" [class.union].  */
*************** extern bool consteval_only_p (tree) ATTR
*** 9436,9447 ****
--- 9444,9459 ----
  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 valid_splice_for_member_access_p (const_tree, bool = true)
+   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]);
  extern void check_consteval_only_fn (tree);
+ extern bool reflection_function_template_p (const_tree) ATTRIBUTE_PURE;
+ extern void dump_data_member_spec (pretty_printer *, tree);
  
  /* Inline bodies.  */
  
diff -Nrcpad gcc-16-20260412/gcc/cp/decl.cc gcc-16-20260419/gcc/cp/decl.cc
*** gcc-16-20260412/gcc/cp/decl.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/decl.cc	Sun Apr 19 22:32:06 2026
*************** cp_finish_decl (tree decl, tree init, bo
*** 9649,9655 ****
  	      /* [basic.start.main]/3: A program that defines main as deleted
  		 is ill-formed.  */
  	      error ("%<::main%> cannot be deleted");
! 	      DECL_INITIAL (decl) = NULL_TREE;
  	    }
  	  else
  	    {
--- 9649,9655 ----
  	      /* [basic.start.main]/3: A program that defines main as deleted
  		 is ill-formed.  */
  	      error ("%<::main%> cannot be deleted");
! 	      DECL_INITIAL (decl) = error_mark_node;
  	    }
  	  else
  	    {
*************** cp_finish_decl (tree decl, tree init, bo
*** 9885,9892 ****
  	 variable.  */
        if (DECL_FUNCTION_SCOPE_P (decl)
  	  && TREE_STATIC (decl)
! 	  && !DECL_ARTIFICIAL (decl)
! 	  && !consteval_only_p (decl))
  	{
  	  /* The variable holding an anonymous union will have had its
  	     discriminator set in finish_anon_union, after which it's
--- 9885,9891 ----
  	 variable.  */
        if (DECL_FUNCTION_SCOPE_P (decl)
  	  && TREE_STATIC (decl)
! 	  && !DECL_ARTIFICIAL (decl))
  	{
  	  /* The variable holding an anonymous union will have had its
  	     discriminator set in finish_anon_union, after which it's
*************** cp_finish_decl (tree decl, tree init, bo
*** 9904,9912 ****
  	      walk_tree (&init, notice_forced_label_r, NULL, NULL);
  	      add_local_decl (cfun, decl);
  	    }
! 	  /* And make sure it's in the symbol table for
! 	     c_parse_final_cleanups to find.  */
! 	  varpool_node::get_create (decl);
  	}
  
        if (flag_openmp
--- 9903,9912 ----
  	      walk_tree (&init, notice_forced_label_r, NULL, NULL);
  	      add_local_decl (cfun, decl);
  	    }
! 	  if (!consteval_only_p (decl))
! 	    /* And make sure it's in the symbol table for
! 	       c_parse_final_cleanups to find.  */
! 	    varpool_node::get_create (decl);
  	}
  
        if (flag_openmp
*************** cp_decomp_size (location_t loc, tree typ
*** 10671,10676 ****
--- 10671,10682 ----
  	return -1;
        else if (btype == NULL_TREE)
  	return 0;
+       if (btype != type)
+ 	{
+ 	  tree binfo = lookup_base (type, btype, ba_check, NULL, complain);
+ 	  if (binfo == NULL_TREE || binfo == error_mark_node)
+ 	    return -1;
+ 	}
        for (tree field = TYPE_FIELDS (btype); field; field = TREE_CHAIN (field))
  	if (TREE_CODE (field) != FIELD_DECL
  	    || DECL_ARTIFICIAL (field)
diff -Nrcpad gcc-16-20260412/gcc/cp/error.cc gcc-16-20260419/gcc/cp/error.cc
*** gcc-16-20260412/gcc/cp/error.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/error.cc	Sun Apr 19 22:32:06 2026
*************** dump_expr (cxx_pretty_printer *pp, tree
*** 3337,3342 ****
--- 3337,3349 ----
  	  dump_decl (pp, h, flags);
  	else if (TYPE_P (h))
  	  dump_type (pp, h, flags);
+ 	else if (TREE_CODE (h) == TREE_VEC)
+ 	  {
+ 	    pp_format_decoder (pp) = cp_printer;
+ 	    pp->set_format_postprocessor
+ 	      (std::make_unique<cxx_format_postprocessor> ());
+ 	    dump_data_member_spec (pp, h);
+ 	  }
  	else
  	  dump_expr (pp, h, flags);
  	break;
diff -Nrcpad gcc-16-20260412/gcc/cp/lambda.cc gcc-16-20260419/gcc/cp/lambda.cc
*** gcc-16-20260412/gcc/cp/lambda.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/lambda.cc	Sun Apr 19 22:32:06 2026
*************** add_capture (tree lambda, tree id, tree
*** 729,736 ****
        && current_class_type == LAMBDA_EXPR_CLOSURE (lambda))
      {
        if (COMPLETE_TYPE_P (current_class_type))
! 	internal_error ("trying to capture %qD in instantiation of "
! 			"generic lambda", id);
        finish_member_declaration (member);
      }
  
--- 729,747 ----
        && current_class_type == LAMBDA_EXPR_CLOSURE (lambda))
      {
        if (COMPLETE_TYPE_P (current_class_type))
! 	{
! 	  /* This can happen for code like [&]<auto e> { [:e:]; } where
! 	     we can't figure out what the splice will designate while parsing;
! 	     we'll only know it after we've substituted the splice, but then
! 	     it's too late to capture anything.  This code is ill-formed as
! 	     per [expr.prim.splice]/2.1.4.1: The expression is ill-formed if
! 	     S is ... a local entity such that ... there is a lambda scope that
! 	     intervenes between the expression and the point at which S was
! 	     introduced and the expression would be potentially evaluated.  */
! 	  error ("trying to capture %qD in instantiation of generic lambda",
! 		 id);
! 	  return error_mark_node;
! 	}
        finish_member_declaration (member);
      }
  
diff -Nrcpad gcc-16-20260412/gcc/cp/lex.cc gcc-16-20260419/gcc/cp/lex.cc
*** gcc-16-20260412/gcc/cp/lex.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/lex.cc	Sun Apr 19 22:32:06 2026
*************** cxx_init (void)
*** 421,427 ****
        if (cxx_dialect >= cxx26)
  	{
  	  if (flag_contracts)
! 	    cpp_warn (parse_in, "contract_assert");
  	  cpp_warn (parse_in, "indeterminate");
  	}
      }
--- 421,430 ----
        if (cxx_dialect >= cxx26)
  	{
  	  if (flag_contracts)
! 	    {
! 	      cpp_warn (parse_in, "pre");
! 	      cpp_warn (parse_in, "post");
! 	    }
  	  cpp_warn (parse_in, "indeterminate");
  	}
      }
diff -Nrcpad gcc-16-20260412/gcc/cp/mangle.cc gcc-16-20260419/gcc/cp/mangle.cc
*** gcc-16-20260412/gcc/cp/mangle.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/mangle.cc	Sun Apr 19 22:32:06 2026
*************** static void write_local_name (tree, cons
*** 240,245 ****
--- 240,246 ----
  static void dump_substitution_candidates (void);
  static tree mangle_decl_string (const tree);
  static void maybe_check_abi_tags (tree, tree = NULL_TREE, int = 10);
+ static void write_splice (tree);
  
  /* Control functions.  */
  
*************** unmangled_name_p (const tree decl)
*** 767,780 ****
      }
    else if (VAR_P (decl))
      {
        /* static variables are mangled.  */
        if (!DECL_EXTERNAL_LINKAGE_P (decl))
  	return false;
  
-       /* extern "C" declarations aren't mangled.  */
-       if (DECL_EXTERN_C_P (decl))
- 	return true;
- 
        /* Other variables at non-global scope are mangled.  */
        if (CP_DECL_CONTEXT (decl) != global_namespace)
  	return false;
--- 768,781 ----
      }
    else if (VAR_P (decl))
      {
+       /* extern "C" declarations aren't mangled.  */
+       if (DECL_NAMESPACE_SCOPE_P (decl) && DECL_EXTERN_C_P (decl))
+ 	return true;
+ 
        /* static variables are mangled.  */
        if (!DECL_EXTERNAL_LINKAGE_P (decl))
  	return false;
  
        /* Other variables at non-global scope are mangled.  */
        if (CP_DECL_CONTEXT (decl) != global_namespace)
  	return false;
*************** write_nested_name (const tree decl)
*** 1299,1305 ****
  	    ::= <template-prefix> <template-args>
  	    ::= <decltype>
  	    ::= # empty
! 	    ::= <substitution>  */
  
  static void
  write_prefix (const tree node)
--- 1300,1307 ----
  	    ::= <template-prefix> <template-args>
  	    ::= <decltype>
  	    ::= # empty
! 	    ::= <substitution>
! 	    ::= <splice>	    # C++26 dependent splice [proposed]  */
  
  static void
  write_prefix (const tree node)
*************** write_prefix (const tree node)
*** 1319,1324 ****
--- 1321,1332 ----
        return;
      }
  
+   if (TREE_CODE (node) == SPLICE_SCOPE)
+     {
+       write_splice (node);
+       return;
+     }
+ 
    if (find_substitution (node))
      return;
  
*************** write_local_name (tree function, const t
*** 2444,2450 ****
  	    ::= G <type>    # imaginary (C 2000)     [not supported]
  	    ::= U <source-name> <type>   # vendor extended type qualifier
  
!    C++0x extensions
  
       <type> ::= RR <type>   # rvalue reference-to
       <type> ::= Dt <expression> # decltype of an id-expression or
--- 2452,2458 ----
  	    ::= G <type>    # imaginary (C 2000)     [not supported]
  	    ::= U <source-name> <type>   # vendor extended type qualifier
  
!    C++11 extensions
  
       <type> ::= RR <type>   # rvalue reference-to
       <type> ::= Dt <expression> # decltype of an id-expression or
*************** write_local_name (tree function, const t
*** 2452,2457 ****
--- 2460,2466 ----
       <type> ::= DT <expression> # decltype of an expression
       <type> ::= Dn              # decltype of nullptr
       <type> ::= Dm		# decltype of ^^int
+      <type> ::= <splice>	# C++26 dependent splice [proposed]
  
     TYPE is a type node.  */
  
*************** write_type (tree type)
*** 2734,2739 ****
--- 2743,2752 ----
  	      ++is_builtin_type;
  	      break;
  
+ 	    case SPLICE_SCOPE:
+ 	      write_splice (type);
+ 	      break;
+ 
  	    case TYPEOF_TYPE:
  	      sorry ("mangling %<typeof%>, use %<decltype%> instead");
  	      break;
*************** range_expr_nelts (tree expr)
*** 3441,3447 ****
  		  ::= L <mangled-name> E		# external name
  		  ::= st <type>				# sizeof
  		  ::= sr <type> <unqualified-name>	# dependent name
! 		  ::= sr <type> <unqualified-name> <template-args> */
  
  static void
  write_expression (tree expr)
--- 3454,3463 ----
  		  ::= L <mangled-name> E		# external name
  		  ::= st <type>				# sizeof
  		  ::= sr <type> <unqualified-name>	# dependent name
! 		  ::= sr <type> <unqualified-name> <template-args>
! 		  ::= L Dm <value reflection> E		# C++26 reflection
! 							# value [proposed]
! 		  ::= <splice>		# C++26 dependent splice [proposed]  */
  
  static void
  write_expression (tree expr)
*************** write_expression (tree expr)
*** 3699,3704 ****
--- 3715,3722 ----
  	write_string ("on");
        write_unqualified_id (expr);
      }
+   else if (dependent_splice_p (expr))
+     write_splice (expr);
    else if (TREE_CODE (expr) == TEMPLATE_ID_EXPR)
      {
        tree fn = TREE_OPERAND (expr, 0);
*************** write_expression (tree expr)
*** 4163,4169 ****
  		  ::= pa [ <nonnegative number> ] _ <encoding>	# fn param
  		  ::= en <prefix> <unqualified-name>	# enumerator
  		  ::= an [ <nonnegative number> ] _	# annotation
! 		  ::= ta <alias prefix>			# type alias
  		  ::= ty <type>				# type
  		  ::= dm <prefix> <unqualified-name>	# ns data member
  		  ::= un <prefix> [ <nonnegative number> ] _ # unnamed bitfld
--- 4181,4188 ----
  		  ::= pa [ <nonnegative number> ] _ <encoding>	# fn param
  		  ::= en <prefix> <unqualified-name>	# enumerator
  		  ::= an [ <nonnegative number> ] _	# annotation
! 		  ::= ta <alias prefix> <alias unqualified-name>
! 		      [ <alias template-args> ] _ <type> # type alias
  		  ::= ty <type>				# type
  		  ::= dm <prefix> <unqualified-name>	# ns data member
  		  ::= un <prefix> [ <nonnegative number> ] _ # unnamed bitfld
*************** write_expression (tree expr)
*** 4174,4180 ****
  		  ::= co [ <prefix> ] <unqualified-name> # concept
  		  ::= na [ <prefix> ] <unqualified-name> # namespace alias
  		  ::= ns [ <prefix> ] <unqualified-name> # namespace
! 		  ::= gs				# ^^::
  		  ::= ba [ <nonnegative number> ] _ <type> # dir. base cls rel
  		  ::= ds <type> _ [ <unqualified-name> ] _
  		      [ <alignment number> ] _ [ <bit-width number> ] _
--- 4193,4201 ----
  		  ::= co [ <prefix> ] <unqualified-name> # concept
  		  ::= na [ <prefix> ] <unqualified-name> # namespace alias
  		  ::= ns [ <prefix> ] <unqualified-name> # namespace
! 		  ::= gs				 # ^^::
! 		  ::= tt <template-template-param>	 # templ templ param
! 		  ::= de <expression>			 # dependent expr
  		  ::= ba [ <nonnegative number> ] _ <type> # dir. base cls rel
  		  ::= ds <type> _ [ <unqualified-name> ] _
  		      [ <alignment number> ] _ [ <bit-width number> ] _
*************** write_reflection (tree refl)
*** 4218,4224 ****
    else if (strcmp (prefix, "ta") == 0)
      {
        arg = TYPE_NAME (arg);
!       write_prefix (arg);
      }
    else if (strcmp (prefix, "ty") == 0)
      write_type (arg);
--- 4239,4255 ----
    else if (strcmp (prefix, "ta") == 0)
      {
        arg = TYPE_NAME (arg);
!       /* Can't use write_prefix (arg) here instead of
! 	 write_prefix + write_unqualified_name + optional
! 	 write_template_args, it shouldn't be
! 	 remembered among substitutions.  */
!       write_prefix (decl_mangling_context (arg));
!       write_unqualified_name (arg);
!       tree template_info = maybe_template_info (arg);
!       if (template_info)
! 	write_template_args (TI_ARGS (template_info));
!       write_char ('_');
!       write_type (DECL_ORIGINAL_TYPE (arg));
      }
    else if (strcmp (prefix, "ty") == 0)
      write_type (arg);
*************** write_reflection (tree refl)
*** 4286,4291 ****
--- 4317,4357 ----
        for (int i = 5; i < TREE_VEC_LENGTH (arg); ++i)
  	write_template_arg (REFLECT_EXPR_HANDLE (TREE_VEC_ELT (arg, i)));
      }
+   else if (strcmp (prefix, "tt") == 0)
+     {
+       gcc_assert (DECL_TEMPLATE_TEMPLATE_PARM_P (arg));
+       write_template_template_param (TREE_TYPE (arg));
+     }
+   else if (strcmp (prefix, "de") == 0)
+     write_expression (arg);
+   else
+     gcc_unreachable ();
+ }
+ 
+ /* Mangle a dependent splice.
+ 
+      <splice> ::= DS <expression> [ <template-args> ] E
+ 
+    TODO: This is only a proposed mangling.
+    See <https://github.com/itanium-cxx-abi/cxx-abi/issues/208>.  */
+ 
+ static void
+ write_splice (tree sp)
+ {
+   write_string ("DS");
+ 
+   if (TREE_CODE (sp) == SPLICE_SCOPE)
+     sp = SPLICE_SCOPE_EXPR (sp);
+   gcc_assert (dependent_splice_p (sp));
+   if (TREE_CODE (sp) == TEMPLATE_ID_EXPR)
+     {
+       write_expression (TREE_OPERAND (TREE_OPERAND (sp, 0), 0));
+       write_template_args (TREE_OPERAND (sp, 1));
+     }
+   else
+     write_expression (TREE_OPERAND (sp, 0));
+ 
+   write_char ('E');
  }
  
  /* Literal subcase of non-terminal <template-arg>.
diff -Nrcpad gcc-16-20260412/gcc/cp/parser.cc gcc-16-20260419/gcc/cp/parser.cc
*** gcc-16-20260412/gcc/cp/parser.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/parser.cc	Sun Apr 19 22:32:06 2026
*************** cp_parser_splice_expression (cp_parser *
*** 6341,6347 ****
        && (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);
--- 6341,6347 ----
        && (targs_p
  	  /* No 'template' but the splice-specifier designates a function
  	     template?  */
! 	  || reflection_function_template_p (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_splice_expression (cp_parser *
*** 6355,6370 ****
      {
        /* Grab the unresolved expression then.  */
        t = unresolved;
!       gcc_assert (TREE_CODE (t) == FIELD_DECL
! 		  || VAR_P (t)
! 		  || TREE_CODE (t) == CONST_DECL
! 		  || TREE_CODE (t) == FUNCTION_DECL
! 		  || DECL_FUNCTION_TEMPLATE_P (OVL_FIRST (t))
! 		  || variable_template_p (t)
! 		  || BASELINK_P (t)
! 		  || TREE_CODE (t) == SPLICE_EXPR
! 		  || TREE_CODE (t) == TEMPLATE_ID_EXPR
! 		  || TREE_CODE (t) == TREE_BINFO);
        /* ??? We're not setting *idk here.  */
      }
    else if (address_p
--- 6355,6361 ----
      {
        /* Grab the unresolved expression then.  */
        t = unresolved;
!       gcc_assert (valid_splice_for_member_access_p (t, /*decls_only_p=*/false));
        /* ??? We're not setting *idk here.  */
      }
    else if (address_p
*************** cp_parser_lambda_body (cp_parser* parser
*** 13737,13742 ****
--- 13728,13754 ----
         finish_function (which will try to emit the contracts).  */
      cp_parser_late_contracts (parser, fco);
  
+     /* Check that we have not caused captures that only relate to contracts.
+        [expr.prim.lambda.closure] / P10.  */
+     if (flag_contracts)
+       {
+ 	gcc_checking_assert (current_lambda_expr () == lambda_expr);
+ 	for (tree le = LAMBDA_EXPR_CAPTURE_LIST (lambda_expr); le;
+ 	     le = TREE_CHAIN (le))
+ 	  {
+ 	    tree cap_fld = TREE_PURPOSE (le);
+ 	    if (TREE_CODE (cap_fld) == FIELD_DECL
+ 		&& DECL_CONTRACT_CAPTURE_P (cap_fld))
+ 	      {
+ 		auto_diagnostic_group d;
+ 		tree expr = TREE_VALUE (le);
+ 		location_t loc = DECL_SOURCE_LOCATION (cap_fld);
+ 		error_at (loc, "%qE is not implicitly captured by a contract"
+ 			  " assertion", expr);
+ 		inform (DECL_SOURCE_LOCATION (expr), "%q#E declared here", expr);
+ 	      }
+ 	  }
+       }
      finish_lambda_function (body);
    }
  
*************** cp_parser_decltype_expr (cp_parser *pars
*** 19387,19396 ****
        /* [dcl.type.decltype] "if E is an unparenthesized splice-expression,
  	 decltype(E) is the type of the entity, object, or value designated
  	 by the splice-specifier of E"  */
!       if (cp_parser_nth_token_starts_splice_without_nns_p (parser, 1))
  	{
  	  cp_id_kind idk;
! 	  expr = cp_parser_splice_expression (parser, /*template_p=*/false,
  					      /*address_p=*/false,
  					      /*template_arg_p=*/false,
  					      /*member_access_p=*/false, &idk);
--- 19399,19417 ----
        /* [dcl.type.decltype] "if E is an unparenthesized splice-expression,
  	 decltype(E) is the type of the entity, object, or value designated
  	 by the splice-specifier of E"  */
!       const bool unparenthesized_splice_expr_p = [&] {
! 	if (!flag_reflection)
! 	  return false;
! 	/* Skip to the end of the ':]' and see if the closing ')' follows.  */
! 	saved_token_sentinel toks (parser->lexer, STS_ROLLBACK);
! 	return (cp_parser_skip_entire_splice_expr (parser)
! 		&& cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_PAREN));
!       } ();
!       if (unparenthesized_splice_expr_p)
  	{
  	  cp_id_kind idk;
! 	  const bool template_p = cp_parser_optional_template_keyword (parser);
! 	  expr = cp_parser_splice_expression (parser, template_p,
  					      /*address_p=*/false,
  					      /*template_arg_p=*/false,
  					      /*member_access_p=*/false, &idk);
*************** cp_parser_late_contract_condition (cp_pa
*** 33573,33581 ****
  
    /* If we have a current class object, we need to consider
       it const when processing the contract condition.  */
!   tree current_class_ref_copy = current_class_ref;
!   if (flag_contracts && current_class_ref_copy)
!     current_class_ref = view_as_const (current_class_ref_copy);
  
    /* Parse the condition, ensuring that parameters or the return variable
       aren't flagged for use outside the body of a function.  */
--- 33594,33600 ----
  
    /* If we have a current class object, we need to consider
       it const when processing the contract condition.  */
!   current_class_ref = view_as_const (current_class_ref);
  
    /* Parse the condition, ensuring that parameters or the return variable
       aren't flagged for use outside the body of a function.  */
*************** cp_parser_contract_assert (cp_parser *pa
*** 33682,33689 ****
    /* If we have a current class object, see if we need to consider
       it const when processing the contract condition.  */
    tree current_class_ref_copy = current_class_ref;
!   if (current_class_ref_copy)
!     current_class_ref = view_as_const (current_class_ref_copy);
  
    /* Parse the condition.  */
    begin_scope (sk_contract, current_function_decl);
--- 33701,33707 ----
    /* If we have a current class object, see if we need to consider
       it const when processing the contract condition.  */
    tree current_class_ref_copy = current_class_ref;
!   current_class_ref = view_as_const (current_class_ref);
  
    /* Parse the condition.  */
    begin_scope (sk_contract, current_function_decl);
*************** cp_parser_function_contract_specifier (c
*** 33848,33855 ****
        /* If we have a current class object, see if we need to consider
         it const when processing the contract condition.  */
        tree current_class_ref_copy = current_class_ref;
!       if (current_class_ref_copy)
!       current_class_ref = view_as_const (current_class_ref_copy);
  
        /* Parse the condition, ensuring that parameters or the return variable
         aren't flagged for use outside the body of a function.  */
--- 33866,33872 ----
        /* If we have a current class object, see if we need to consider
         it const when processing the contract condition.  */
        tree current_class_ref_copy = current_class_ref;
!       current_class_ref = view_as_const (current_class_ref);
  
        /* Parse the condition, ensuring that parameters or the return variable
         aren't flagged for use outside the body of a function.  */
diff -Nrcpad gcc-16-20260412/gcc/cp/pt.cc gcc-16-20260419/gcc/cp/pt.cc
*** gcc-16-20260412/gcc/cp/pt.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/pt.cc	Sun Apr 19 22:32:06 2026
*************** push_template_decl (tree decl, bool is_f
*** 6378,6383 ****
--- 6378,6390 ----
        if (DECL_TEMPLATE_INFO (tmpl))
  	args = add_outermost_template_args (DECL_TI_ARGS (tmpl), args);
  
+       /* Bug c++/103901.  Let's sorry now rather than ICE later.  */
+       if (TREE_VEC_LENGTH (args) == 0
+ 	  && ctx && LAMBDA_FUNCTION_P (ctx)
+ 	  && DECL_IMPLICIT_TYPEDEF_P (decl)
+ 	  && CLASS_TYPE_P (TREE_TYPE (decl)))
+ 	sorry ("local class in lambda in template parameter list");
+ 
        tree info = build_template_info (tmpl, args);
  
        if (DECL_IMPLICIT_TYPEDEF_P (decl))
*************** add_extra_args (tree extra, tree args, t
*** 14044,14049 ****
--- 14051,14139 ----
    return args;
  }
  
+ /* We've seen a lambda capture proxy pack PAT in a context outside the body,
+    such as in a trailing requires-clause.  Here we cannot use
+    lookup_init_capture_pack, both because checking satisfaction comes after
+    tsubst_lambda_expr (so the field pack isn't in local_specializations) and
+    before start_lambda_function (so the proxies aren't there to lookup_name).
+ 
+    However, because satisfy_declaration_constraints pushed into the context of
+    the substituted closure type, we can find it in current_class_type,
+    enumerate the expanded field pack, and then use that to expand the capture
+    proxy pack.
+ 
+    This seems like cheating, but there's really no alternative since lambdas
+    are not instantiated; we have to use the same closure type.  To address this
+    in the language, probably lambda constraints should be substituted
+    immediately like lambda noexcept.  */
+ 
+ tree
+ reconstruct_lambda_capture_pack (tree pat, tree args, tsubst_flags_t complain,
+ 				 tree in_decl)
+ {
+   gcc_assert (cp_unevaluated_operand && !at_function_scope_p ());
+   tree newc = current_class_type;
+ 
+   /* Look up the pattern FIELD_DECL.  */
+   tree oldfield = TREE_OPERAND (DECL_VALUE_EXPR (pat), 1);
+   gcc_assert (DECL_SOURCE_LOCATION (TYPE_NAME (DECL_CONTEXT (oldfield)))
+ 	      == DECL_SOURCE_LOCATION (TYPE_NAME (newc)));
+ 
+   if (!retrieve_local_specialization (oldfield))
+     {
+       /* Look through TYPE_FIELDS to find captures with matching
+ 	 capture#1 names.  */
+       tree pn = DECL_NAME (oldfield);
+       const char *ps = IDENTIFIER_POINTER (pn);
+       int pl = IDENTIFIER_LENGTH (pn);
+       tree firstcap = NULL_TREE;
+       int ncap = 0;
+       for (tree f = next_subobject_field (TYPE_FIELDS (newc));
+ 	   f; f = DECL_CHAIN (f))
+ 	{
+ 	  const char *s = IDENTIFIER_POINTER (DECL_NAME (f));
+ 	  if (strncmp (ps, s, pl) == 0 && s[pl] == '#')
+ 	    {
+ 	      if (!firstcap)
+ 		firstcap = f;
+ 	      ++ncap;
+ 	    }
+ 	  else if (firstcap)
+ 	    break;
+ 	}
+       tree fpack = make_tree_vec (ncap);
+       for (int i = 0; i < ncap; ++i)
+ 	{
+ 	  TREE_VEC_ELT (fpack, i) = firstcap;
+ 	  firstcap = DECL_CHAIN (firstcap);
+ 	}
+       tree spec = make_node (NONTYPE_ARGUMENT_PACK);
+       ARGUMENT_PACK_ARGS (spec) = fpack;
+       /* satisfy_declaration_constraints set up local_specializations.  */
+       register_local_specialization (spec, oldfield);
+     }
+ 
+   /* Now that the field pack is in local_specializations, we can substitute
+      into the DECL_VALUE_EXPR of the proxy.  */
+   tree ve = DECL_VALUE_EXPR (pat);
+   ve = make_pack_expansion (ve);
+   ve = tsubst_pack_expansion (ve, args, complain, in_decl);
+   const int len = TREE_VEC_LENGTH (ve);
+   tree ppack = make_tree_vec (len);
+   for (int i = 0; i < len; ++i)
+     {
+       tree p = copy_decl (pat);
+       tree vei = TREE_VEC_ELT (ve, i);
+       SET_DECL_VALUE_EXPR (p, vei);
+       TREE_TYPE (p) = lambda_proxy_type (vei);
+       TREE_VEC_ELT (ppack, i) = p;
+     }
+   tree spec = make_node (NONTYPE_ARGUMENT_PACK);
+   ARGUMENT_PACK_ARGS (spec) = ppack;
+   register_local_specialization (spec, pat);
+   return spec;
+ }
+ 
  /* Substitute ARGS into T, which is a pack expansion
     (i.e. TYPE_PACK_EXPANSION or EXPR_PACK_EXPANSION).  Returns a
     TREE_VEC with the substituted arguments, a PACK_EXPANSION_* node
*************** tsubst_pack_expansion (tree t, tree args
*** 14139,14144 ****
--- 14229,14237 ----
        else if (is_capture_proxy (parm_pack))
  	{
  	  arg_pack = retrieve_local_specialization (parm_pack);
+ 	  if (!arg_pack)
+ 	    arg_pack = reconstruct_lambda_capture_pack (parm_pack, args,
+ 							complain, in_decl);
  	  if (DECL_DECOMPOSITION_P (arg_pack))
  	    {
  	      orig_arg = arg_pack;
*************** tsubst_pack_expansion (tree t, tree args
*** 14147,14152 ****
--- 14240,14248 ----
  	  if (DECL_PACK_P (arg_pack))
  	    arg_pack = NULL_TREE;
  	}
+       else if (TREE_CODE (parm_pack) == FIELD_DECL)
+ 	/* For reconstruct_lambda_capture_pack.  */
+ 	arg_pack = retrieve_local_specialization (parm_pack);
        else if (DECL_DECOMPOSITION_P (parm_pack))
  	{
  	  orig_arg = retrieve_local_specialization (parm_pack);
*************** tsubst_decl (tree t, tree args, tsubst_f
*** 16156,16161 ****
--- 16252,16260 ----
  	      tcomplain |= tf_tst_ok;
  	    if (DECL_DECOMPOSITION_P (t) && DECL_PACK_P (t))
  	      type = NULL_TREE;
+ 	    else if (is_capture_proxy (t) && WILDCARD_TYPE_P (type))
+ 	      /* We'll set type from DECL_VALUE_EXPR.  */
+ 	      type = NULL_TREE;
  	    else
  	      type = tsubst (type, args, tcomplain, in_decl);
  	    /* Substituting the type might have recursively instantiated this
*************** tsubst_decl (tree t, tree args, tsubst_f
*** 16185,16190 ****
--- 16284,16319 ----
  		SET_TYPE_STRUCTURAL_EQUALITY (type);
  		PACK_EXPANSION_PARAMETER_PACKS (type) = r;
  	      }
+ 	    if (DECL_HAS_VALUE_EXPR_P (t))
+ 	      {
+ 		tree ve = DECL_VALUE_EXPR (t);
+ 		/* If the DECL_VALUE_EXPR is converted to the declared type,
+ 		   preserve the identity so that gimplify_type_sizes works.  */
+ 		bool nop = (type && TREE_CODE (ve) == NOP_EXPR);
+ 		if (nop)
+ 		  ve = TREE_OPERAND (ve, 0);
+ 		ve = tsubst_expr (ve, args, complain, in_decl);
+ 		gcc_assert (ve != error_mark_node);
+ 		if (REFERENCE_REF_P (ve))
+ 		  {
+ 		    gcc_assert (!type || TYPE_REF_P (type));
+ 		    ve = TREE_OPERAND (ve, 0);
+ 		  }
+ 		if (nop)
+ 		  ve = build_nop (type, ve);
+ 		else if (!type && is_capture_proxy (t))
+ 		  type = lambda_proxy_type (ve);
+ 		else if (DECL_LANG_SPECIFIC (t)
+ 			 && DECL_OMP_PRIVATIZED_MEMBER (t)
+ 			 && TREE_CODE (ve) == COMPONENT_REF
+ 			 && TREE_CODE (TREE_OPERAND (ve, 1)) == FIELD_DECL
+ 			 && DECL_BIT_FIELD_TYPE (TREE_OPERAND (ve, 1)) == type)
+ 		  type = TREE_TYPE (ve);
+ 		else
+ 		  gcc_checking_assert (TYPE_MAIN_VARIANT (TREE_TYPE (ve))
+ 				       == TYPE_MAIN_VARIANT (type));
+ 		SET_DECL_VALUE_EXPR (r, ve);
+ 	      }
  	    if (TREE_CODE (type) == FUNCTION_TYPE)
  	      {
  		/* It may seem that this case cannot occur, since:
*************** tsubst_decl (tree t, tree args, tsubst_f
*** 16212,16244 ****
  	    DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (r) = 0;
  	    type = check_var_type (DECL_NAME (r), type,
  				   DECL_SOURCE_LOCATION (r));
- 	    if (DECL_HAS_VALUE_EXPR_P (t))
- 	      {
- 		tree ve = DECL_VALUE_EXPR (t);
- 		/* If the DECL_VALUE_EXPR is converted to the declared type,
- 		   preserve the identity so that gimplify_type_sizes works.  */
- 		bool nop = (TREE_CODE (ve) == NOP_EXPR);
- 		if (nop)
- 		  ve = TREE_OPERAND (ve, 0);
- 		ve = tsubst_expr (ve, args, complain, in_decl);
- 		if (REFERENCE_REF_P (ve))
- 		  {
- 		    gcc_assert (TYPE_REF_P (type));
- 		    ve = TREE_OPERAND (ve, 0);
- 		  }
- 		if (nop)
- 		  ve = build_nop (type, ve);
- 		else if (DECL_LANG_SPECIFIC (t)
- 			 && DECL_OMP_PRIVATIZED_MEMBER (t)
- 			 && TREE_CODE (ve) == COMPONENT_REF
- 			 && TREE_CODE (TREE_OPERAND (ve, 1)) == FIELD_DECL
- 			 && DECL_BIT_FIELD_TYPE (TREE_OPERAND (ve, 1)) == type)
- 		  type = TREE_TYPE (ve);
- 		else
- 		  gcc_checking_assert (TYPE_MAIN_VARIANT (TREE_TYPE (ve))
- 				       == TYPE_MAIN_VARIANT (type));
- 		SET_DECL_VALUE_EXPR (r, ve);
- 	      }
  	  }
  	else if (DECL_SELF_REFERENCE_P (t))
  	  SET_DECL_SELF_REFERENCE_P (r);
--- 16341,16346 ----
*************** tsubst_exception_specification (tree fnt
*** 16625,16630 ****
--- 16727,16733 ----
  					   args);
  	      expr = DEFERRED_NOEXCEPT_PATTERN (expr);
  	    }
+ 	  cp_unevaluated u;
  	  new_specs = tsubst_expr (expr, args, complain, in_decl);
  	}
        new_specs = build_noexcept_spec (new_specs, complain);
*************** tsubst_splice_expr (tree t, tree args, t
*** 16866,16880 ****
       cp_parser_postfix_dot_deref_expression wants to see only
       certain kind of entities.  */
    if (SPLICE_EXPR_MEMBER_ACCESS_P (t))
!     gcc_assert (TREE_CODE (op) == FIELD_DECL
! 		|| VAR_P (op)
! 		|| TREE_CODE (op) == CONST_DECL
! 		|| TREE_CODE (op) == FUNCTION_DECL
! 		|| DECL_FUNCTION_TEMPLATE_P (OVL_FIRST (op))
! 		|| variable_template_p (op)
! 		|| BASELINK_P (op)
! 		|| TREE_CODE (op) == TEMPLATE_ID_EXPR
! 		|| TREE_CODE (op) == TREE_BINFO);
  
    return op;
  }
--- 16969,16975 ----
       cp_parser_postfix_dot_deref_expression wants to see only
       certain kind of entities.  */
    if (SPLICE_EXPR_MEMBER_ACCESS_P (t))
!     gcc_assert (valid_splice_for_member_access_p (op, /*decls_only_p=*/false));
  
    return op;
  }
*************** tsubst (tree t, tree args, tsubst_flags_
*** 17030,17035 ****
--- 17125,17143 ----
      case ENUMERAL_TYPE:
        if (TYPE_TEMPLATE_INFO (t) && uses_template_parms (t))
  	{
+ 	  if (LAMBDA_TYPE_P (t))
+ 	    {
+ 	      /* In reconstruct_lambda_capture_pack we need to be able to
+ 		 rebuild the lambda closure parm, which means looking up the
+ 		 closure type.  See the comment for that function about using
+ 		 current_class_type.  */
+ 	      tree c = current_class_type;
+ 	      if (LAMBDA_TYPE_P (c)
+ 		  && (DECL_SOURCE_LOCATION (TYPE_NAME (t))
+ 		      == DECL_SOURCE_LOCATION (TYPE_NAME (c))))
+ 		return c;
+ 	      gcc_unreachable ();
+ 	    }
  	  /* Figure out what arguments are appropriate for the
  	     type we are trying to find.  For example, given:
  
*************** tsubst_lambda_expr (tree t, tree args, t
*** 20991,20996 ****
--- 21099,21106 ----
      /* If we're pushed into another scope (PR105652), fix it.  */
      TYPE_CONTEXT (type) = DECL_CONTEXT (TYPE_NAME (type))
        = TYPE_CONTEXT (TREE_TYPE (t));
+   DECL_SOURCE_LOCATION (TYPE_NAME (type))
+     = DECL_SOURCE_LOCATION (TYPE_NAME (TREE_TYPE (t)));
    record_lambda_scope_discriminator (r);
  
    /* Do this again now that LAMBDA_EXPR_EXTRA_SCOPE is set.  */
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 22502,22507 ****
--- 22612,22627 ----
  	  member = tsubst_baselink (member,
  				    non_reference (TREE_TYPE (object)),
  				    args, complain, in_decl);
+ 	/* In reconstruct_lambda_capture_pack, handle replacing the FIELD_DECL
+ 	   pack with an element.  */
+ 	else if (object_type && LAMBDA_TYPE_P (object_type)
+ 		 && TREE_CODE (member) == FIELD_DECL
+ 		 && (r = retrieve_local_specialization (member)))
+ 	  {
+ 	    if (TREE_CODE (r) == ARGUMENT_PACK_SELECT)
+ 	      r = argument_pack_select_arg (r);
+ 	    member = r;
+ 	  }
  	else
  	  member = tsubst_name (member, args, complain, in_decl);
  	if (member == error_mark_node)
*************** finish_expansion_stmt (tree expansion_st
*** 33340,33345 ****
--- 33460,33466 ----
    location_t loc = DECL_SOURCE_LOCATION (range_decl);
    tree begin = NULL_TREE, begin_minus_begin_type = NULL_TREE;
    auto_vec<tree, 8> destruct_decls;
+   bool is_lvalue = false;
    if (BRACE_ENCLOSED_INITIALIZER_P (expansion_init))
      {
        /* Enumerating expansion statements.  */
*************** finish_expansion_stmt (tree expansion_st
*** 33420,33425 ****
--- 33541,33547 ----
        if (sz < 0)
  	return;
        n = sz;
+       is_lvalue = lvalue_p (expansion_init);
        tree auto_node = make_auto ();
        tree decomp_type = cp_build_reference_type (auto_node, true);
        decomp_type = do_auto_deduction (decomp_type, expansion_init, auto_node);
*************** finish_expansion_stmt (tree expansion_st
*** 33534,33540 ****
  	  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))
--- 33656,33663 ----
  	  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, get_identifier ("__for_iter "),
! 			     iter_type);
  	  TREE_USED (iter) = 1;
  	  DECL_ARTIFICIAL (iter) = 1;
  	  if (DECL_DECLARED_CONSTEXPR_P (range_decl))
*************** finish_expansion_stmt (tree expansion_st
*** 33551,33556 ****
--- 33674,33691 ----
  	  break;
  	case esk_destructuring:
  	  init = convert_from_reference (destruct_decls[i]);
+ 	  if (!is_lvalue)
+ 	    {
+ 	      tree ctype;
+ 	      if (DECL_HAS_VALUE_EXPR_P (destruct_decls[i]))
+ 		ctype = unlowered_expr_type (destruct_decls[i]);
+ 	      else
+ 		ctype = lookup_decomp_type (destruct_decls[i]);
+ 	      ctype = cp_build_reference_type (ctype, /*rval=*/true);
+ 	      init = build_static_cast (loc, ctype, init,
+ 					tf_warning_or_error);
+ 	      init = convert_from_reference (init);
+ 	    }
  	  break;
  	default:
  	  gcc_unreachable ();
diff -Nrcpad gcc-16-20260412/gcc/cp/reflect.cc gcc-16-20260419/gcc/cp/reflect.cc
*** gcc-16-20260412/gcc/cp/reflect.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/reflect.cc	Sun Apr 19 22:32:06 2026
*************** replace_parm_r (tree *tp, int *walk_subt
*** 394,399 ****
--- 394,433 ----
  static tree throw_exception (location_t, const constexpr_ctx *, const char *,
  			     tree, bool *, tree *);
  
+ /* Helper function for get_range_elts, handle adjustment of ARRAY_TYPE elts
+    of a retvec.  */
+ 
+ static tree
+ adjust_array_elt (location_t loc, const constexpr_ctx *ctx, tree valuet,
+ 		  tree expr, tree fun, bool *non_constant_p, tree *jump_target)
+ {
+   if (TREE_CODE (valuet) == ARRAY_TYPE)
+     {
+       if (TREE_CODE (expr) != CONSTRUCTOR
+ 	  || TREE_CODE (TREE_TYPE (expr)) != ARRAY_TYPE)
+ 	return throw_exception (loc, ctx, "reflect_constant_array failed",
+ 				fun, non_constant_p, jump_target);
+       unsigned int i;
+       tree val;
+       FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (expr), i, val)
+ 	{
+ 	  CONSTRUCTOR_ELT (expr, i)->value
+ 	    = adjust_array_elt (loc, ctx, TREE_TYPE (valuet), val, fun,
+ 				non_constant_p, jump_target);
+ 	  if (*jump_target || *non_constant_p)
+ 	    return NULL_TREE;
+ 	}
+       return expr;
+     }
+   expr = convert_reflect_constant_arg (valuet, expr);
+   if (expr == error_mark_node)
+     return throw_exception (loc, ctx, "reflect_constant failed",
+ 			    fun, non_constant_p, jump_target);
+   if (VAR_P (expr))
+     expr = DECL_INITIAL (expr);
+   return expr;
+ }
+ 
  /* Kinds for get_range_elts.  */
  
  enum get_range_elts_kind {
*************** get_range_elts (location_t loc, const co
*** 513,535 ****
  	}
        if (kind == REFLECT_CONSTANT_ARRAY)
  	{
! 	  if (!structural_type_p (valuet))
  	    {
  	      if (!cxx_constexpr_quiet_p (ctx))
  		{
  		  auto_diagnostic_group d;
  		  error_at (loc, "%<reflect_constant_array%> argument with "
  				 "%qT which is not a structural type", inst);
! 		  structural_type_p (valuet, true);
  		}
  	      *non_constant_p = true;
  	      return NULL_TREE;
  	    }
  	  TREE_VEC_ELT (args, 0)
! 	    = build_stub_type (valuet,
! 			       cp_type_quals (valuet) | TYPE_QUAL_CONST,
  			       false);
! 	  if (!is_xible (INIT_EXPR, valuet, args))
  	    {
  	      if (!cxx_constexpr_quiet_p (ctx))
  		error_at (loc, "%<reflect_constant_array%> argument with %qT "
--- 547,570 ----
  	}
        if (kind == REFLECT_CONSTANT_ARRAY)
  	{
! 	  tree valuete = strip_array_types (valuet);
! 	  if (!structural_type_p (valuete))
  	    {
  	      if (!cxx_constexpr_quiet_p (ctx))
  		{
  		  auto_diagnostic_group d;
  		  error_at (loc, "%<reflect_constant_array%> argument with "
  				 "%qT which is not a structural type", inst);
! 		  structural_type_p (valuete, true);
  		}
  	      *non_constant_p = true;
  	      return NULL_TREE;
  	    }
  	  TREE_VEC_ELT (args, 0)
! 	    = build_stub_type (valuete,
! 			       cp_type_quals (valuete) | TYPE_QUAL_CONST,
  			       false);
! 	  if (!is_xible (INIT_EXPR, valuete, args))
  	    {
  	      if (!cxx_constexpr_quiet_p (ctx))
  		error_at (loc, "%<reflect_constant_array%> argument with %qT "
*************** get_range_elts (location_t loc, const co
*** 551,557 ****
  	    }
  	  tree referencet = TYPE_MAIN_VARIANT (instr);
  	  TREE_VEC_ELT (args, 0) = referencet;
! 	  if (!is_xible (INIT_EXPR, valuet, args))
  	    {
  	      if (!cxx_constexpr_quiet_p (ctx))
  		error_at (loc, "%<reflect_constant_array%> argument with %qT "
--- 586,606 ----
  	    }
  	  tree referencet = TYPE_MAIN_VARIANT (instr);
  	  TREE_VEC_ELT (args, 0) = referencet;
! 	  if (valuete != valuet)
! 	    {
! 	      tree rt = non_reference (referencet);
! 	      if (!same_type_ignoring_top_level_qualifiers_p (valuet, rt))
! 		{
! 		  if (!cxx_constexpr_quiet_p (ctx))
! 		    error_at (loc, "%<reflect_constant_array%> argument with "
! 				   "%qT which is not compatible with %qT "
! 				   "%<std::ranges::range_reference_t%>",
! 			      inst, referencet);
! 		  *non_constant_p = true;
! 		  return NULL_TREE;
! 		}
! 	    }
! 	  else if (!is_xible (INIT_EXPR, valuet, args))
  	    {
  	      if (!cxx_constexpr_quiet_p (ctx))
  		error_at (loc, "%<reflect_constant_array%> argument with %qT "
*************** get_range_elts (location_t loc, const co
*** 595,606 ****
  	else
  	  {
  	    gcc_assert (kind == REFLECT_CONSTANT_ARRAY);
  	    tree expr = convert_reflect_constant_arg (valuet, retvec[i]);
  	    if (expr == error_mark_node)
  	      return throw_exception (loc, ctx, "reflect_constant failed",
  				      fun, non_constant_p, jump_target);
  	    if (VAR_P (expr))
! 	      expr = unshare_expr (DECL_INITIAL (expr));
  	    retvec[i] = expr;
  	  }
        }
--- 644,665 ----
  	else
  	  {
  	    gcc_assert (kind == REFLECT_CONSTANT_ARRAY);
+ 	    if (TREE_CODE (valuet) == ARRAY_TYPE)
+ 	      {
+ 		retvec[i]
+ 		  = adjust_array_elt (loc, ctx, valuet,
+ 				      unshare_expr (retvec[i]), fun,
+ 				      non_constant_p, jump_target);
+ 		if (*jump_target || *non_constant_p)
+ 		  return NULL_TREE;
+ 		continue;
+ 	      }
  	    tree expr = convert_reflect_constant_arg (valuet, retvec[i]);
  	    if (expr == error_mark_node)
  	      return throw_exception (loc, ctx, "reflect_constant failed",
  				      fun, non_constant_p, jump_target);
  	    if (VAR_P (expr))
! 	      expr = DECL_INITIAL (expr);
  	    retvec[i] = expr;
  	  }
        }
*************** eval_identifier_of (location_t loc, cons
*** 3620,3625 ****
--- 3679,3707 ----
    return build_cplus_new (ret_type, ret, tf_warning_or_error);
  }
  
+ /* Display R, which is a data member description.  */
+ 
+ void
+ dump_data_member_spec (pretty_printer *pp, tree r)
+ {
+ #if __GNUC__ >= 10
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wformat"
+ #pragma GCC diagnostic ignored "-Wformat-diag"
+ #endif
+   pp_printf (pp, "(%T, %E, %E, %E, %s, {", TREE_VEC_ELT (r, 0),
+ 	     TREE_VEC_ELT (r, 1), TREE_VEC_ELT (r, 2), TREE_VEC_ELT (r, 3),
+ 	     TREE_VEC_ELT (r, 4) == boolean_true_node
+ 	     ? "true" : "false");
+   for (int i = 5; i < TREE_VEC_LENGTH (r); ++i)
+     pp_printf (pp, "%s%E", i == 5 ? "" : ", ",
+ 	       REFLECT_EXPR_HANDLE (TREE_VEC_ELT (r, i)));
+   pp_printf (pp, "})");
+ #if __GNUC__ >= 10
+ #pragma GCC diagnostic pop
+ #endif
+ }
+ 
  /* Process std::meta::{,u8}display_string_of.
     Returns: An implementation-defined string_view or u8string_view,
     respectively.
*************** eval_display_string_of (location_t loc,
*** 3679,3694 ****
        pp_printf (&pp, "%T: %T", d, BINFO_TYPE (r));
      }
    else if (kind == REFLECT_DATA_MEMBER_SPEC)
!     {
!       pp_printf (&pp, "(%T, %E, %E, %E, %s, {", TREE_VEC_ELT (r, 0),
! 		 TREE_VEC_ELT (r, 1), TREE_VEC_ELT (r, 2), TREE_VEC_ELT (r, 3),
! 		 TREE_VEC_ELT (r, 4) == boolean_true_node
! 		 ? "true" : "false");
!       for (int i = 5; i < TREE_VEC_LENGTH (r); ++i)
! 	pp_printf (&pp, "%s%E", i == 5 ? "" : ", ",
! 		   REFLECT_EXPR_HANDLE (TREE_VEC_ELT (r, i)));
!       pp_printf (&pp, "})");
!     }
    else if (eval_is_annotation (r, kind) == boolean_true_node)
      pp_printf (&pp, "[[=%E]]",
  	       tree_strip_any_location_wrapper (TREE_VALUE (TREE_VALUE (r))));
--- 3761,3767 ----
        pp_printf (&pp, "%T: %T", d, BINFO_TYPE (r));
      }
    else if (kind == REFLECT_DATA_MEMBER_SPEC)
!     dump_data_member_spec (&pp, r);
    else if (eval_is_annotation (r, kind) == boolean_true_node)
      pp_printf (&pp, "[[=%E]]",
  	       tree_strip_any_location_wrapper (TREE_VALUE (TREE_VALUE (r))));
*************** splice (tree refl)
*** 8444,8456 ****
        gcc_checking_assert (seen_error ());
        return error_mark_node;
      }
    if (!REFLECT_EXPR_P (refl))
      {
!       error_at (cp_expr_loc_or_input_loc (refl), "splice argument must be an "
  		"expression of type %qs", "std::meta::info");
        return error_mark_node;
      }
  
    /* We are bringing some entity from the unevaluated expressions world
       to possibly outside of that, mark it used.  */
    if (!mark_used (REFLECT_EXPR_HANDLE (refl)))
--- 8517,8550 ----
        gcc_checking_assert (seen_error ());
        return error_mark_node;
      }
+   location_t loc = cp_expr_loc_or_input_loc (refl);
    if (!REFLECT_EXPR_P (refl))
      {
!       error_at (loc, "splice argument must be an "
  		"expression of type %qs", "std::meta::info");
        return error_mark_node;
      }
  
+   if (compare_reflections (refl, get_null_reflection ()))
+     {
+       error_at (loc, "cannot splice a null reflection");
+       return error_mark_node;
+     }
+ 
+   /* This isn't checked in check_splice_expr, because reflect_kind isn't
+      available there and variable_of (parameters_of (...)[...]) can be
+      spliced.  */
+   if (REFLECT_EXPR_KIND (refl) == REFLECT_PARM)
+     {
+       auto_diagnostic_group d;
+       error_at (loc, "cannot use %qD function parameter reflection in a "
+ 		"splice expression", REFLECT_EXPR_HANDLE (refl));
+       if (DECL_CONTEXT (REFLECT_EXPR_HANDLE (refl)) == current_function_decl)
+ 	inform (loc,
+ 		"apply %<std::meta::variable_of%> on it before splicing");
+       return error_mark_node;
+     }
+ 
    /* We are bringing some entity from the unevaluated expressions world
       to possibly outside of that, mark it used.  */
    if (!mark_used (REFLECT_EXPR_HANDLE (refl)))
*************** valid_splice_scope_p (const_tree t)
*** 8815,8820 ****
--- 8909,8936 ----
  	  || TREE_CODE (t) == NAMESPACE_DECL);
  }
  
+ /* Return true if T is a valid result of the splice in a class member access,
+    as in obj.[:R:].  If DECLS_ONLY_P, only certain decls are OK.  */
+ 
+ bool
+ valid_splice_for_member_access_p (const_tree t, bool decls_only_p/*=true*/)
+ {
+   if (TREE_CODE (t) == FIELD_DECL
+       || VAR_P (t)
+       || TREE_CODE (t) == CONST_DECL
+       || TREE_CODE (t) == FUNCTION_DECL
+       || reflection_function_template_p (t)
+       || variable_template_p (const_cast<tree> (t)))
+     return true;
+ 
+   if (decls_only_p)
+     return false;
+ 
+   return (BASELINK_P (t)
+ 	  || TREE_CODE (t) == TEMPLATE_ID_EXPR
+ 	  || TREE_CODE (t) == TREE_BINFO);
+ }
+ 
  /* Check a function DECL for CWG 3115: Every function of consteval-only
     type shall be an immediate function.  */
  
*************** check_splice_expr (location_t loc, locat
*** 8915,8920 ****
--- 9031,9044 ----
        return false;
      }
  
+   if (member_access_p
+       && !valid_splice_for_member_access_p (t, /*decls_only_p=*/false))
+     {
+       if (complain_p)
+ 	error_at (loc, "cannot use %qE to access a class member", 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
*** 8978,8984 ****
  	 template.  */
        if (!targs_p)
  	{
! 	  if (!really_overloaded_fn (t) && !dependent_splice_p (t))
  	    {
  	      if (complain_p)
  		{
--- 9102,9108 ----
  	 template.  */
        if (!targs_p)
  	{
! 	  if (!reflection_function_template_p (t) && !dependent_splice_p (t))
  	    {
  	      if (complain_p)
  		{
*************** check_splice_expr (location_t loc, locat
*** 9005,9011 ****
  	    }
  	  return false;
  	}
!       gcc_checking_assert (really_overloaded_fn (t)
  			   || get_template_info (t)
  			   || TREE_CODE (t) == TEMPLATE_ID_EXPR
  			   || variable_template_p (t)
--- 9129,9135 ----
  	    }
  	  return false;
  	}
!       gcc_checking_assert (reflection_function_template_p (t)
  			   || get_template_info (t)
  			   || TREE_CODE (t) == TEMPLATE_ID_EXPR
  			   || variable_template_p (t)
*************** reflection_mangle_prefix (tree refl, cha
*** 9179,9185 ****
--- 9303,9333 ----
        strcpy (prefix, "ds");
        return h;
      }
+   /* We don't have a metafunction for template template parameters.  */
+   if (DECL_TEMPLATE_TEMPLATE_PARM_P (h))
+     {
+       strcpy (prefix, "tt");
+       return h;
+     }
+   /* For ^^T::x, we can't say what the reflection is going to be.  Just say
+      it's something dependent.  This is at the end rather than the beginning
+      because potential_constant_expression_1 doesn't handle codes like
+      TREE_BINFO.  */
+   if (uses_template_parms (h))
+     {
+       strcpy (prefix, "de");
+       return h;
+     }
    gcc_unreachable ();
  }
  
+ /* Returns true iff X is a reflection of a function template.  */
+ 
+ bool
+ reflection_function_template_p (const_tree x)
+ {
+   return (DECL_FUNCTION_TEMPLATE_P
+ 	  (OVL_FIRST (MAYBE_BASELINK_FUNCTIONS (const_cast<tree> (x)))));
+ }
+ 
  #include "gt-cp-reflect.h"
diff -Nrcpad gcc-16-20260412/gcc/cp/semantics.cc gcc-16-20260419/gcc/cp/semantics.cc
*** gcc-16-20260412/gcc/cp/semantics.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/semantics.cc	Sun Apr 19 22:32:06 2026
*************** outer_automatic_var_p (tree decl)
*** 4575,4580 ****
--- 4575,4592 ----
  	  && !TREE_STATIC (decl));
  }
  
+ /* Note whether capture proxy D is only used in a contract condition.  */
+ 
+ static void
+ set_contract_capture_flag (tree d, bool val)
+ {
+   gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (d));
+   tree proxy = DECL_VALUE_EXPR (d);
+   gcc_checking_assert (TREE_CODE (proxy) == COMPONENT_REF
+ 		       && TREE_CODE (TREE_OPERAND (proxy, 1)) == FIELD_DECL);
+   DECL_CONTRACT_CAPTURE_P (TREE_OPERAND (proxy, 1)) = val;
+ }
+ 
  /* DECL satisfies outer_automatic_var_p.  Possibly complain about it or
     rewrite it for lambda capture.
  
*************** process_outer_var_ref (tree decl, tsubst
*** 4619,4624 ****
--- 4631,4641 ----
  
        if (d && d != decl && is_capture_proxy (d))
  	{
+ 	  if (flag_contracts && !processing_contract_condition)
+ 	    /* We might have created a capture for a contract_assert ref. to
+ 	       some var, if that is now captured 'normally' then this is OK.
+ 	       Otherwise we leave the capture marked as incorrect.  */
+ 	    set_contract_capture_flag (d, false);
  	  if (DECL_CONTEXT (d) == containing_function)
  	    /* We already have an inner proxy.  */
  	    return d;
*************** process_outer_var_ref (tree decl, tsubst
*** 4667,4676 ****
        return error_mark_node;
      }
    /* Do lambda capture when processing the id-expression, not when
!      odr-using a variable.  */
    if (!odr_use && context == containing_function)
!     decl = add_default_capture (lambda_stack,
! 				/*id=*/DECL_NAME (decl), initializer);
    /* Only an odr-use of an outer automatic variable causes an
       error, and a constant variable can decay to a prvalue
       constant without odr-use.  So don't complain yet.  */
--- 4684,4697 ----
        return error_mark_node;
      }
    /* Do lambda capture when processing the id-expression, not when
!      odr-using a variable, but uses in a contract must not cause a capture.  */
    if (!odr_use && context == containing_function)
!     {
!       decl = add_default_capture (lambda_stack,
! 				  /*id=*/DECL_NAME (decl), initializer);
!       if (flag_contracts && processing_contract_condition)
! 	set_contract_capture_flag (decl, true);
!     }
    /* Only an odr-use of an outer automatic variable causes an
       error, and a constant variable can decay to a prvalue
       constant without odr-use.  So don't complain yet.  */
diff -Nrcpad gcc-16-20260412/gcc/cp/tree.cc gcc-16-20260419/gcc/cp/tree.cc
*** gcc-16-20260412/gcc/cp/tree.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/tree.cc	Sun Apr 19 22:32:06 2026
*************** strip_typedefs_expr (tree t, bool *remov
*** 2155,2160 ****
--- 2155,2165 ----
      case STMT_EXPR:
        return t;
  
+     case REFLECT_EXPR:
+       /* ^^alias represents the alias itself, not the underlying type.  */
+       if (TYPE_P (REFLECT_EXPR_HANDLE (t)))
+ 	return t;
+ 
      default:
        break;
      }
*************** cp_tree_equal (tree t1, tree t2)
*** 4510,4519 ****
        return true;
  
      case REFLECT_EXPR:
!       if (!cp_tree_equal (REFLECT_EXPR_HANDLE (t1), REFLECT_EXPR_HANDLE (t2))
! 	  || REFLECT_EXPR_KIND (t1) != REFLECT_EXPR_KIND (t2))
! 	return false;
!       return true;
  
      default:
        break;
--- 4515,4534 ----
        return true;
  
      case REFLECT_EXPR:
!       {
! 	if (REFLECT_EXPR_KIND (t1) != REFLECT_EXPR_KIND (t2))
! 	  return false;
! 	tree h1 = REFLECT_EXPR_HANDLE (t1);
! 	tree h2 = REFLECT_EXPR_HANDLE (t2);
! 	if (!cp_tree_equal (h1, h2))
! 	  return false;
! 	/* ^^alias represents the alias itself, not the underlying type.  */
! 	if (TYPE_P (h1)
! 	    && (typedef_variant_p (h1) || typedef_variant_p (h2))
! 	    && TYPE_NAME (h1) != TYPE_NAME (h2))
! 	  return false;
! 	return true;
!       }
  
      default:
        break;
diff -Nrcpad gcc-16-20260412/gcc/cp/typeck.cc gcc-16-20260419/gcc/cp/typeck.cc
*** gcc-16-20260412/gcc/cp/typeck.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cp/typeck.cc	Sun Apr 19 22:32:06 2026
*************** finish_class_member_access_expr (cp_expr
*** 3594,3606 ****
  	      return error_mark_node;
  	    }
  	}
!       else if (splice_p
! 	       && (TREE_CODE (name) == FIELD_DECL
! 		   || 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))
--- 3594,3600 ----
  	      return error_mark_node;
  	    }
  	}
!       else if (splice_p && valid_splice_for_member_access_p (name))
  	{
  	  scope = context_for_name_lookup (OVL_FIRST (name));
  	  if (!CLASS_TYPE_P (scope))
*************** finish_class_member_access_expr (cp_expr
*** 3664,3677 ****
  	  gcc_assert (CLASS_TYPE_P (scope));
  	  gcc_assert (identifier_p (name)
  		      || TREE_CODE (name) == BIT_NOT_EXPR
! 		      || (splice_p
! 			  && (TREE_CODE (name) == FIELD_DECL
! 			      || VAR_P (name)
! 			      || TREE_CODE (name) == CONST_DECL
! 			      || TREE_CODE (name) == FUNCTION_DECL
! 			      || DECL_FUNCTION_TEMPLATE_P
! 						(OVL_FIRST (name))
! 			      || variable_template_p (name))));
  
  	  if (constructor_name_p (name, scope))
  	    {
--- 3658,3664 ----
  	  gcc_assert (CLASS_TYPE_P (scope));
  	  gcc_assert (identifier_p (name)
  		      || TREE_CODE (name) == BIT_NOT_EXPR
! 		      || (splice_p && valid_splice_for_member_access_p (name)));
  
  	  if (constructor_name_p (name, scope))
  	    {
*************** finish_class_member_access_expr (cp_expr
*** 3723,3734 ****
  	    goto dependent;
  	  member = lookup_destructor (object, scope, name, complain);
  	}
!       else if (splice_p && (TREE_CODE (name) == FIELD_DECL
! 			    || VAR_P (name)
! 			    || TREE_CODE (name) == CONST_DECL
! 			    || TREE_CODE (name) == FUNCTION_DECL
! 			    || DECL_FUNCTION_TEMPLATE_P (OVL_FIRST (name))
! 			    || variable_template_p (name)))
  	{
  	  member = name;
  	  name = OVL_FIRST (name);
--- 3710,3716 ----
  	    goto dependent;
  	  member = lookup_destructor (object, scope, name, complain);
  	}
!       else if (splice_p && valid_splice_for_member_access_p (name))
  	{
  	  member = name;
  	  name = OVL_FIRST (name);
*************** cxx_mark_addressable (tree exp, bool arr
*** 8281,8286 ****
--- 8263,8272 ----
  		    || DECL_IN_AGGR_P (x) == 0
  		    || TREE_STATIC (x)
  		    || DECL_EXTERNAL (x));
+ 	if (VAR_P (x)
+ 	    && DECL_ANON_UNION_VAR_P (x)
+ 	    && !TREE_ADDRESSABLE (x))
+ 	  cxx_mark_addressable (DECL_VALUE_EXPR (x));
  	/* Fall through.  */
  
        case RESULT_DECL:
diff -Nrcpad gcc-16-20260412/gcc/cse.cc gcc-16-20260419/gcc/cse.cc
*** gcc-16-20260412/gcc/cse.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/cse.cc	Sun Apr 19 22:32:06 2026
*************** canon_reg (rtx x, rtx_insn *insn)
*** 2847,2852 ****
--- 2847,2870 ----
      case ADDR_DIFF_VEC:
        return x;
  
+     case SUBREG:
+       {
+ 	rtx inner = canon_reg (SUBREG_REG (x), insn);
+ 	if (inner != SUBREG_REG (x))
+ 	  {
+ 	    rtx newx = simplify_subreg (GET_MODE (x), inner,
+ 					GET_MODE (SUBREG_REG (x)),
+ 					SUBREG_BYTE (x));
+ 	    if (newx)
+ 	      return newx;
+ 
+ 	    if (validate_subreg (GET_MODE (x), GET_MODE (inner),
+ 				 inner, SUBREG_BYTE (x)))
+ 	      validate_change (insn, &SUBREG_REG (x), inner, 1);
+ 	  }
+ 	return x;
+       }
+ 
      case REG:
        {
  	int first;
diff -Nrcpad gcc-16-20260412/gcc/d/ChangeLog gcc-16-20260419/gcc/d/ChangeLog
*** gcc-16-20260412/gcc/d/ChangeLog	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/ChangeLog	Sun Apr 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,20 ----
+ 2026-04-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/124922
+ 	* d-codegen.cc (build_trap_call): New function.
+ 	(build_array_bounds_call): Use it.
+ 	(build_bounds_index_condition): Likewise.
+ 	(build_bounds_slice_condition): Likewise.
+ 	(d_build_call): Likewise.
+ 	* expr.cc (ExprVisitor::visit (HaltExp *)): Likewise.
+ 	(ExprVisitor::visit (AssertExp *)): Likewise.  Return zero instead of
+ 	void_node when assert contracts are disabled.
+ 	* d-tree.h (build_trap_call): New prototype.
+ 
+ 2026-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* dmd/MERGE: Merge upstream dmd e145b91245.
+ 
  2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	PR other/124784
diff -Nrcpad gcc-16-20260412/gcc/d/d-attribs.cc gcc-16-20260419/gcc/d/d-attribs.cc
*** gcc-16-20260412/gcc/d/d-attribs.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/d-attribs.cc	Sun Apr 19 22:32:06 2026
*************** static tree d_handle_restrict_attribute
*** 81,86 ****
--- 81,87 ----
  static tree d_handle_used_attribute (tree *, tree, tree, int, bool *);
  static tree d_handle_visibility_attribute (tree *, tree, tree, int, bool *);
  static tree d_handle_no_sanitize_attribute (tree *, tree, tree, int, bool *);
+ static tree d_handle_no_split_stack_attribute (tree *, tree, tree, int, bool *);
  static tree d_handle_simd_attribute (tree *, tree, tree, int, bool *);
  
  /* Helper to define attribute exclusions.  */
*************** static const attribute_spec d_langhook_g
*** 234,239 ****
--- 235,242 ----
  	     d_handle_cold_attribute, attr_cold_hot_exclusions),
    ATTR_SPEC ("no_sanitize", 1, -1, true, false, false, false,
  	     d_handle_no_sanitize_attribute, NULL),
+   ATTR_SPEC ("no_split_stack", 0, 0, true, false, false, false,
+ 	     d_handle_no_split_stack_attribute, NULL),
    ATTR_SPEC ("register", 1, 1, true, false, false, false,
  	     d_handle_register_attribute, NULL),
    ATTR_SPEC ("restrict", 0, 0, true, false, false, false,
*************** d_handle_no_sanitize_attribute (tree *no
*** 1439,1444 ****
--- 1442,1464 ----
      }
  
    return NULL_TREE;
+ }
+ 
+ /* Handle a "no_split_stack" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ static tree
+ d_handle_no_split_stack_attribute (tree *node, tree name, tree, int,
+ 				   bool *no_add_attrs)
+ {
+   if (TREE_CODE (*node) != FUNCTION_DECL)
+     {
+       error_at (DECL_SOURCE_LOCATION (*node),
+ 		"%qE attribute applies only to functions", name);
+       *no_add_attrs = true;
+     }
+ 
+   return NULL_TREE;
  }
  
  /* Handle a "register" attribute; arguments as in
diff -Nrcpad gcc-16-20260412/gcc/d/d-codegen.cc gcc-16-20260419/gcc/d/d-codegen.cc
*** gcc-16-20260412/gcc/d/d-codegen.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/d-codegen.cc	Sun Apr 19 22:32:06 2026
*************** build_array_bounds_call (const Loc &loc)
*** 2007,2013 ****
  {
    /* Terminate the program with a trap if no D runtime present.  */
    if (checkaction_trap_p ())
!     return build_call_expr (builtin_decl_explicit (BUILT_IN_TRAP), 0);
    else
      {
        return build_libcall (LIBCALL_ARRAYBOUNDSP, 2,
--- 2007,2013 ----
  {
    /* Terminate the program with a trap if no D runtime present.  */
    if (checkaction_trap_p ())
!     return build_trap_call ();
    else
      {
        return build_libcall (LIBCALL_ARRAYBOUNDSP, 2,
*************** build_bounds_index_condition (IndexExp *
*** 2036,2042 ****
    tree boundserr;
  
    if (checkaction_trap_p ())
!     boundserr = build_call_expr (builtin_decl_explicit (BUILT_IN_TRAP), 0);
    else
      {
        boundserr = build_libcall (LIBCALL_ARRAYBOUNDS_INDEXP, 4,
--- 2036,2042 ----
    tree boundserr;
  
    if (checkaction_trap_p ())
!     boundserr = build_trap_call ();
    else
      {
        boundserr = build_libcall (LIBCALL_ARRAYBOUNDS_INDEXP, 4,
*************** build_bounds_slice_condition (SliceExp *
*** 2082,2091 ****
  	  tree boundserr;
  
  	  if (checkaction_trap_p ())
! 	    {
! 	      boundserr =
! 		build_call_expr (builtin_decl_explicit (BUILT_IN_TRAP), 0);
! 	    }
  	  else
  	    {
  	      boundserr = build_libcall (LIBCALL_ARRAYBOUNDS_SLICEP, 5,
--- 2082,2088 ----
  	  tree boundserr;
  
  	  if (checkaction_trap_p ())
! 	    boundserr = build_trap_call ();
  	  else
  	    {
  	      boundserr = build_libcall (LIBCALL_ARRAYBOUNDS_SLICEP, 5,
*************** checkaction_trap_p (void)
*** 2156,2161 ****
--- 2153,2166 ----
      }
  }
  
+ /* Build a call to built-in trap().  */
+ 
+ tree
+ build_trap_call ()
+ {
+   return build_call_expr (builtin_decl_explicit (BUILT_IN_TRAP), 0);
+ }
+ 
  /* Returns the TypeFunction class for Type T.
     Assumes T is already the main variant type (toBasetype).  */
  
*************** d_build_call (TypeFunction *tf, tree cal
*** 2397,2402 ****
--- 2402,2411 ----
  	    break;
  	}
  
+       /* Trap after evaluating all call arguments, as it is not expected that
+ 	 we get to this point after the `noreturn' parameter.  */
+       saved_args = compound_expr (saved_args, build_trap_call ());
+ 
        /* Add a stub result type for the expression.  */
        tree result = build_zero_cst (TREE_TYPE (ctype));
        return compound_expr (saved_args, result);
diff -Nrcpad gcc-16-20260412/gcc/d/d-tree.h gcc-16-20260419/gcc/d/d-tree.h
*** gcc-16-20260412/gcc/d/d-tree.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/d-tree.h	Sun Apr 19 22:32:06 2026
*************** extern tree build_bounds_index_condition
*** 608,613 ****
--- 608,614 ----
  extern tree build_bounds_slice_condition (SliceExp *, tree, tree, tree);
  extern bool array_bounds_check (void);
  extern bool checkaction_trap_p (void);
+ extern tree build_trap_call (void);
  extern TypeFunction *get_function_type (Type *);
  extern bool call_side_effect_free_p (FuncDeclaration *, Type *);
  extern bool call_by_alias_p (FuncDeclaration *, FuncDeclaration *);
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/MERGE gcc-16-20260419/gcc/d/dmd/MERGE
*** gcc-16-20260412/gcc/d/dmd/MERGE	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/MERGE	Sun Apr 19 22:32:06 2026
***************
*** 1,4 ****
! 662104f52607c175ecb80633bd261932aa004561
  
  The first line of this file holds the git revision number of the last
  merge done from the dlang/dmd repository.
--- 1,4 ----
! e145b9124523d1fecd55e0702003ef86947eb745
  
  The first line of this file holds the git revision number of the last
  merge done from the dlang/dmd repository.
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/constfold.d gcc-16-20260419/gcc/d/dmd/constfold.d
*** gcc-16-20260412/gcc/d/dmd/constfold.d	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/constfold.d	Sun Apr 19 22:32:06 2026
*************** UnionExp Slice(Type type, Expression e1,
*** 1267,1273 ****
          {
              auto elements = new Expressions(cast(size_t)(iupr - ilwr));
              memcpy(elements.tdata(), es1.elements.tdata() + ilwr, cast(size_t)(iupr - ilwr) * ((*es1.elements)[0]).sizeof);
!             emplaceExp!(ArrayLiteralExp)(&ue, e1.loc, type, elements);
          }
      }
      else
--- 1267,1273 ----
          {
              auto elements = new Expressions(cast(size_t)(iupr - ilwr));
              memcpy(elements.tdata(), es1.elements.tdata() + ilwr, cast(size_t)(iupr - ilwr) * ((*es1.elements)[0]).sizeof);
!             emplaceExp!(ArrayLiteralExp)(&ue, e1.loc, type, es1.basis, elements);
          }
      }
      else
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/declaration.h gcc-16-20260419/gcc/d/dmd/declaration.h
*** gcc-16-20260412/gcc/d/dmd/declaration.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/declaration.h	Sun Apr 19 22:32:06 2026
*************** namespace dmd
*** 45,51 ****
      bool equals(const Dsymbol * const ds, const Dsymbol * const s);
      bool hasNestedFrameRefs(FuncDeclaration *fd);
      bool isVirtualMethod(FuncDeclaration *fd);
!     bool isVirtual(const FuncDeclaration *fd);
  }
  
  //enum STC : ulong from astenums.d:
--- 45,51 ----
      bool equals(const Dsymbol * const ds, const Dsymbol * const s);
      bool hasNestedFrameRefs(FuncDeclaration *fd);
      bool isVirtualMethod(FuncDeclaration *fd);
!     bool isVirtual(const FuncDeclaration * const fd);
  }
  
  //enum STC : ulong from astenums.d:
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/dsymbolsem.d gcc-16-20260419/gcc/d/dmd/dsymbolsem.d
*** gcc-16-20260412/gcc/d/dmd/dsymbolsem.d	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/dsymbolsem.d	Sun Apr 19 22:32:06 2026
*************** private extern(C++) final class DsymbolS
*** 2389,2394 ****
--- 2389,2412 ----
              return true;
          }
  
+         static bool shouldTryDeepSArrayDimInference(Expression ie, Scope* sc)
+         {
+             if (!ie)
+                 return false;
+ 
+             // `new` expressions cannot provide a compile-time static extent
+             // for inferring `$`, and may recurse through incomplete aggregates.
+             if (ie.isNewExp())
+                 return false;
+ 
+             // Field initializers are especially prone to recursive semantic
+             // evaluation against incompletely defined aggregates.
+             if (sc && sc.parent && sc.parent.isAggregateDeclaration())
+                 return false;
+ 
+             return true;
+         }
+ 
          auto tsa = dsym.type.isTypeSArray();
  
          if (tsa && hasDollarDimension(tsa))
*************** private extern(C++) final class DsymbolS
*** 2397,2415 ****
              {
                  .error(dsym.loc, "cannot infer static array length from `$`, provide an initializer");
                  tsa.dim = new IntegerExp(dsym.loc, 0, Type.tsize_t);
              }
              else
              {
                  Expression ie = dsym._init.initializerToExpression(null, sc.inCfile);
                  if (ie && ie.op != EXP.error)
                  {
!                     ie = ie.expressionSemantic(sc);
!                     ie = ie.optimize(WANTvalue);
                      bool dimInferred = inferSArrayDim(tsa, ie, dsym.loc, sc);
                      if (!dimInferred)
                      {
                          .error(dsym.loc, "cannot infer static array length from `$`, provide an initializer");
                          tsa.dim = new IntegerExp(dsym.loc, 0, Type.tsize_t);
                      }
                      if (auto ale = ie.isArrayLiteralExp())
                          dsym._init = new ExpInitializer(dsym.loc, ale);
--- 2415,2451 ----
              {
                  .error(dsym.loc, "cannot infer static array length from `$`, provide an initializer");
                  tsa.dim = new IntegerExp(dsym.loc, 0, Type.tsize_t);
+                 dsym._init = new ErrorInitializer();
+                 dsym.type = Type.terror;
+                 dsym.errors = true;
+                 dsym.semanticRun = PASS.semanticdone;
+                 return;
              }
              else
              {
                  Expression ie = dsym._init.initializerToExpression(null, sc.inCfile);
                  if (ie && ie.op != EXP.error)
                  {
!                     // Infer from literal syntax first to avoid prematurely
!                     // semantic-analyzing expressions that may depend on
!                     // incomplete types (e.g. recursive initializers).
!                     // https://github.com/dlang/dmd/issues/22887
                      bool dimInferred = inferSArrayDim(tsa, ie, dsym.loc, sc);
+                     if (!dimInferred && shouldTryDeepSArrayDimInference(ie, sc))
+                     {
+                         ie = ie.expressionSemantic(sc);
+                         ie = ie.optimize(WANTvalue);
+                         dimInferred = inferSArrayDim(tsa, ie, dsym.loc, sc);
+                     }
                      if (!dimInferred)
                      {
                          .error(dsym.loc, "cannot infer static array length from `$`, provide an initializer");
                          tsa.dim = new IntegerExp(dsym.loc, 0, Type.tsize_t);
+                         dsym._init = new ErrorInitializer();
+                         dsym.type = Type.terror;
+                         dsym.errors = true;
+                         dsym.semanticRun = PASS.semanticdone;
+                         return;
                      }
                      if (auto ale = ie.isArrayLiteralExp())
                          dsym._init = new ExpInitializer(dsym.loc, ale);
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/globals.d gcc-16-20260419/gcc/d/dmd/globals.d
*** gcc-16-20260412/gcc/d/dmd/globals.d	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/globals.d	Sun Apr 19 22:32:06 2026
*************** extern (C++) struct Param
*** 181,187 ****
      bool addMain;           // add a default main() function
      bool allInst;           // generate code for all template instantiations
      bool bitfields = true;  // support C style bit fields
!     bool rewriteNoExceptionToSeq; // Allow finally statements that do not throw an Exception
                                    // in try body to rewrite to a sequence.
  
      CppStdRevision cplusplus = CppStdRevision.cpp11;    // version of C++ standard to support
--- 181,187 ----
      bool addMain;           // add a default main() function
      bool allInst;           // generate code for all template instantiations
      bool bitfields = true;  // support C style bit fields
!     bool nothrowOptimizations; // Allow finally statements that do not throw an Exception
                                    // in try body to rewrite to a sequence.
  
      CppStdRevision cplusplus = CppStdRevision.cpp11;    // version of C++ standard to support
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/globals.h gcc-16-20260419/gcc/d/dmd/globals.h
*** gcc-16-20260412/gcc/d/dmd/globals.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/globals.h	Sun Apr 19 22:32:06 2026
*************** struct Param
*** 205,211 ****
      d_bool addMain;       // add a default main() function
      d_bool allInst;       // generate code for all template instantiations
      d_bool bitfields;         // support C style bit fields
!     d_bool rewriteNoExceptionToSeq;
      CppStdRevision cplusplus;  // version of C++ name mangling to support
  
      Help help;
--- 205,211 ----
      d_bool addMain;       // add a default main() function
      d_bool allInst;       // generate code for all template instantiations
      d_bool bitfields;         // support C style bit fields
!     d_bool nothrowOptimizations;
      CppStdRevision cplusplus;  // version of C++ name mangling to support
  
      Help help;
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/scope.h gcc-16-20260419/gcc/d/dmd/scope.h
*** gcc-16-20260412/gcc/d/dmd/scope.h	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/scope.h	Sun Apr 19 22:32:06 2026
*************** struct Scope final
*** 138,143 ****
      AliasDeclaration *aliasAsg; // if set, then aliasAsg is being assigned a new value,
                                  // do not set wasRead for it
      StructDeclaration *argStruct; // elimiate recursion when looking for rvalue construction
- 
-     Dsymbol *search(Loc loc, Identifier *ident, Dsymbol *&pscopesym, SearchOptFlags flags = (SearchOptFlags)SearchOpt::all);
  };
--- 138,141 ----
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/statementsem.d gcc-16-20260419/gcc/d/dmd/statementsem.d
*** gcc-16-20260412/gcc/d/dmd/statementsem.d	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/statementsem.d	Sun Apr 19 22:32:06 2026
*************** Statement statementSemanticVisit(Stateme
*** 1898,1905 ****
              ss.condition = ErrorExp.get();
          ss.condition = ss.condition.optimize(WANTvalue);
          ss.condition = ss.condition.checkGC(sc);
!         if (ss.condition.op == EXP.error)
!             conditionError = true;
  
          bool needswitcherror = false;
  
--- 1898,1905 ----
              ss.condition = ErrorExp.get();
          ss.condition = ss.condition.optimize(WANTvalue);
          ss.condition = ss.condition.checkGC(sc);
!         if (conditionError || ss.condition.op == EXP.error)
!             return setError();
  
          bool needswitcherror = false;
  
*************** Statement statementSemanticVisit(Stateme
*** 1915,1921 ****
          ss._body = ss._body.statementSemantic(sc);
          sc.inLoop = inLoopSave;
  
!         if (conditionError || (ss._body && ss._body.isErrorStatement()))
          {
              sc.pop();
              return setError();
--- 1915,1921 ----
          ss._body = ss._body.statementSemantic(sc);
          sc.inLoop = inLoopSave;
  
!         if (ss._body && ss._body.isErrorStatement())
          {
              sc.pop();
              return setError();
*************** Statement statementSemanticVisit(Stateme
*** 2357,2362 ****
--- 2357,2369 ----
              lval = fval + 256;
          }
  
+         // If the first and last values aren't integer types, then the toInteger()
+         // call above would have resulted in an error.
+         if  (!crs.first.type.isIntegral() || !crs.last.type.isIntegral())
+         {
+             errors = true;
+         }
+ 
          if (errors)
              return setError();
  
*************** Statement statementSemanticVisit(Stateme
*** 3491,3497 ****
          // Don't care about paths that halt, either
          // Only rewrite if it was requested.
          // This has side effects where Error will not run destructors, unsafe.
!         if (global.params.rewriteNoExceptionToSeq && (blockexit & ~BE.halt) == BE.fallthru)
          {
              result = new CompoundStatement(tfs.loc, tfs._body, tfs.finalbody);
              return;
--- 3498,3504 ----
          // Don't care about paths that halt, either
          // Only rewrite if it was requested.
          // This has side effects where Error will not run destructors, unsafe.
!         if (global.params.nothrowOptimizations && (blockexit & ~BE.halt) == BE.fallthru)
          {
              result = new CompoundStatement(tfs.loc, tfs._body, tfs.finalbody);
              return;
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/templatesem.d gcc-16-20260419/gcc/d/dmd/templatesem.d
*** gcc-16-20260412/gcc/d/dmd/templatesem.d	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/templatesem.d	Sun Apr 19 22:32:06 2026
*************** MATCH deduceType(scope RootObject o, sco
*** 7550,7561 ****
          override void visit(ArrayLiteralExp e)
          {
              // https://issues.dlang.org/show_bug.cgi?id=20092
!             if (e.elements && e.elements.length && e.type.toBasetype().nextOf().ty == Tvoid)
!             {
!                 result = deduceEmptyArrayElement();
!                 return;
!             }
!             if ((!e.elements || !e.elements.length) && e.type.toBasetype().nextOf().ty == Tvoid && tparam.ty == Tarray)
              {
                  // tparam:T[] <- e:[] (void[])
                  result = deduceEmptyArrayElement();
--- 7550,7556 ----
          override void visit(ArrayLiteralExp e)
          {
              // https://issues.dlang.org/show_bug.cgi?id=20092
!             if (e.type.toBasetype().nextOf().ty == Tvoid && tparam.ty == Tarray)
              {
                  // tparam:T[] <- e:[] (void[])
                  result = deduceEmptyArrayElement();
diff -Nrcpad gcc-16-20260412/gcc/d/dmd/typesem.d gcc-16-20260419/gcc/d/dmd/typesem.d
*** gcc-16-20260412/gcc/d/dmd/typesem.d	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/dmd/typesem.d	Sun Apr 19 22:32:06 2026
*************** void check(Type _this)
*** 466,480 ****
   */
  private void fixTo(Type _this, Type t)
  {
-     // If fixing this: immutable(T*) by t: immutable(T)*,
-     // cache t to this.xto won't break transitivity.
      Type mto = null;            // the naked type of `t`
-     Type tn = _this.nextOf();
      if (_this.mod || t.mod)
      {
          _this.getMcache();
          t.getMcache();
      }
      if (!tn || _this.ty != Tsarray && tn.mod == t.nextOf().mod)
      {
          switch (t.mod)
--- 466,480 ----
   */
  private void fixTo(Type _this, Type t)
  {
      Type mto = null;            // the naked type of `t`
      if (_this.mod || t.mod)
      {
          _this.getMcache();
          t.getMcache();
      }
+     // If fixing this: immutable(T*) by t: immutable(T)*,
+     // cache t to this.xto won't break transitivity.
+     Type tn = _this.nextOf();
      if (!tn || _this.ty != Tsarray && tn.mod == t.nextOf().mod)
      {
          switch (t.mod)
*************** Type immutableOf(Type type)
*** 8529,8534 ****
--- 8529,8543 ----
  
  /********************************
   * Make type mutable.
+  *      0            => 0
+  *      const        => 0
+  *      immutable    => 0
+  *      shared       => shared
+  *      shared const => shared
+  *      wild         => 0
+  *      wild const   => 0
+  *      shared wild  => shared
+  *      shared wild const => shared
   */
  Type mutableOf(Type type)
  {
diff -Nrcpad gcc-16-20260412/gcc/d/expr.cc gcc-16-20260419/gcc/d/expr.cc
*** gcc-16-20260412/gcc/d/expr.cc	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/d/expr.cc	Sun Apr 19 22:32:06 2026
*************** public:
*** 1783,1795 ****
      else if (global.params.useAssert == CHECKENABLEon && checkaction_trap_p ())
        {
  	/* Generate: __builtin_trap()  */
! 	tree fn = builtin_decl_explicit (BUILT_IN_TRAP);
! 	assert_fail = build_call_expr (fn, 0);
        }
      else
        {
  	/* Assert contracts are turned off.  */
! 	this->result_ = void_node;
  	return;
        }
  
--- 1783,1794 ----
      else if (global.params.useAssert == CHECKENABLEon && checkaction_trap_p ())
        {
  	/* Generate: __builtin_trap()  */
! 	assert_fail = build_trap_call ();
        }
      else
        {
  	/* Assert contracts are turned off.  */
! 	this->result_ = build_zero_cst (build_ctype (e->type));
  	return;
        }
  
*************** public:
*** 1905,1912 ****
    void visit (HaltExp *) final override
    {
      /* Should we use trap() or abort()?  */
!     tree ttrap = builtin_decl_explicit (BUILT_IN_TRAP);
!     this->result_ = build_call_expr (ttrap, 0);
    }
  
    /* Build a symbol pointer offset expression.  */
--- 1904,1910 ----
    void visit (HaltExp *) final override
    {
      /* Should we use trap() or abort()?  */
!     this->result_ = build_trap_call ();
    }
  
    /* Build a symbol pointer offset expression.  */
diff -Nrcpad gcc-16-20260412/gcc/doc/extend.texi gcc-16-20260419/gcc/doc/extend.texi
*** gcc-16-20260412/gcc/doc/extend.texi	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/doc/extend.texi	Sun Apr 19 22:32:06 2026
*************** FPU.
*** 403,414 ****
  @cindex @code{_Decimal32} data type
  @cindex @code{_Decimal64} data type
  @cindex @code{_Decimal128} data type
! @cindex @code{df} integer suffix
! @cindex @code{dd} integer suffix
! @cindex @code{dl} integer suffix
! @cindex @code{DF} integer suffix
! @cindex @code{DD} integer suffix
! @cindex @code{DL} integer suffix
  
  As an extension, GNU C supports decimal floating types as defined in
  the N1312 draft of ISO/IEC WDTR24732.  GCC does not yet implement the
--- 403,416 ----
  @cindex @code{_Decimal32} data type
  @cindex @code{_Decimal64} data type
  @cindex @code{_Decimal128} data type
! @cindex @code{df} floating point suffix
! @cindex @code{dd} floating point suffix
! @cindex @code{dl} floating point suffix
! @cindex @code{DF} floating point suffix
! @cindex @code{DD} floating point suffix
! @cindex @code{DL} floating point suffix
! @cindex @code{d} floating point suffix
! @cindex @code{D} floating point suffix
  
  As an extension, GNU C supports decimal floating types as defined in
  the N1312 draft of ISO/IEC WDTR24732.  GCC does not yet implement the
*************** relational operators; equality operators
*** 428,434 ****
  integer and other floating types.  Use a suffix @samp{df} or
  @samp{DF} in a literal constant of type @code{_Decimal32}, @samp{dd}
  or @samp{DD} for @code{_Decimal64}, and @samp{dl} or @samp{DL} for
! @code{_Decimal128}.
  
  GCC support of decimal float as specified by the draft technical report
  is incomplete:
--- 430,437 ----
  integer and other floating types.  Use a suffix @samp{df} or
  @samp{DF} in a literal constant of type @code{_Decimal32}, @samp{dd}
  or @samp{DD} for @code{_Decimal64}, and @samp{dl} or @samp{DL} for
! @code{_Decimal128}.  The draft TR also defines the suffixes @samp{d}
! and @samp{D} for type @code{double}.
  
  GCC support of decimal float as specified by the draft technical report
  is incomplete:
diff -Nrcpad gcc-16-20260412/gcc/doc/install.texi gcc-16-20260419/gcc/doc/install.texi
*** gcc-16-20260412/gcc/doc/install.texi	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/doc/install.texi	Sun Apr 19 22:32:06 2026
*************** a linker error.
*** 4165,4171 ****
  By default, multilib support is built for @code{gfx908}, @code{gfx90a},
  @code{gfx9-generic}, @code{gfx9-4-generic}, @code{gfx10-3-generic}, and
  @code{gfx11-generic}, which covers all supported archs.  The default multilib
! configuration requires LLVM 19 or newer.  LLVM 13.0.1 or LLVM 14 can be used by
  specifying a @code{--with-multilib-list=} that only lists GFX9 or GFX10-3
  devices, while LLVM 15 is required for GFX 11 device and @code{gfx1036}.
  At least LLVM 16 is required for @code{gfx1150} and @code{gfx1151},
--- 4165,4171 ----
  By default, multilib support is built for @code{gfx908}, @code{gfx90a},
  @code{gfx9-generic}, @code{gfx9-4-generic}, @code{gfx10-3-generic}, and
  @code{gfx11-generic}, which covers all supported archs.  The default multilib
! configuration requires LLVM 20 or newer.  LLVM 13.0.1 or LLVM 14 can be used by
  specifying a @code{--with-multilib-list=} that only lists GFX9 or GFX10-3
  devices, while LLVM 15 is required for GFX 11 device and @code{gfx1036}.
  At least LLVM 16 is required for @code{gfx1150} and @code{gfx1151},
diff -Nrcpad gcc-16-20260412/gcc/doc/invoke.texi gcc-16-20260419/gcc/doc/invoke.texi
*** gcc-16-20260412/gcc/doc/invoke.texi	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/doc/invoke.texi	Sun Apr 19 22:32:06 2026
*************** Objective-C and Objective-C++ Dialects}.
*** 902,908 ****
  -moverride=@var{string}
  -mstack-protector-guard=@var{guard}  -mstack-protector-guard-reg=@var{sysreg}
  -mstack-protector-guard-offset=@var{offset}  -mtrack-speculation
! -moutline-atomics  -mearly-ra  -mearly-ldp-fusion  -mlate-ldp-fusion
  -msve-vector-bits=@var{bits}}
  
  @emph{Adapteva Epiphany Options} (@ref{Adapteva Epiphany Options})
--- 902,908 ----
  -moverride=@var{string}
  -mstack-protector-guard=@var{guard}  -mstack-protector-guard-reg=@var{sysreg}
  -mstack-protector-guard-offset=@var{offset}  -mtrack-speculation
! -moutline-atomics  -mearly-ra  -mearly-ldp-fusion  -mlate-ldp-fusion -mnarrow-gp-writes
  -msve-vector-bits=@var{bits}}
  
  @emph{Adapteva Epiphany Options} (@ref{Adapteva Epiphany Options})
*************** performance of the code.  Permissible va
*** 21521,21528 ****
  @samp{oryon-1},
  @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
  @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{neoverse-v2}, @samp{grace},
! @samp{neoverse-v3}, @samp{neoverse-v3ae}, @samp{neoverse-n3}, @samp{olympus},
! @samp{cortex-a725}, @samp{cortex-x925},
  @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
  @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
  @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
--- 21521,21528 ----
  @samp{oryon-1},
  @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
  @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{neoverse-v2}, @samp{grace},
! @samp{neoverse-v3}, @samp{neoverse-v3ae}, @samp{armagicpu}, @samp{neoverse-n3},
! @samp{olympus}, @samp{cortex-a725}, @samp{cortex-x925},
  @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
  @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
  @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
*************** register allocation.  Enabled by default
*** 21689,21694 ****
--- 21689,21701 ----
  Enable the copy of the AArch64 load/store pair fusion pass that runs after
  register allocation.  Enabled by default at @samp{-O} and above.
  
+ @opindex mnarrow-gp-writes
+ @item -mnarrow-gp-writes
+ Enable conversion of 64-bit general purpose register writes to equivalent 32-bit
+ operations when the upper 32 bits are known to be zero.  This pass can be
+ controlled with -mnarrow-gp-writes and is active at -O2 and above, but not
+ enabled by default, except for @option{-mcpu=olympus}.
+ 
  @opindex msve-vector-bits
  @item -msve-vector-bits=@var{bits}
  Specify the number of bits in an SVE vector register.  This option only has
*************** instructions on @samp{cortex-m52}, @samp
*** 23676,23682 ****
  @item +cdecp0, +cdecp1, ... , +cdecp7
  Enable the Custom Datapath Extension (CDE) on selected coprocessors according
  to the numbers given in the options in the range 0 to 7 on @samp{cortex-m52},
! @samp{cortex-m55} and @samp{star-mc1}.
  
  @item  +nofp
  Disables the floating-point instructions on @samp{arm9e},
--- 23683,23689 ----
  @item +cdecp0, +cdecp1, ... , +cdecp7
  Enable the Custom Datapath Extension (CDE) on selected coprocessors according
  to the numbers given in the options in the range 0 to 7 on @samp{cortex-m52},
! @samp{cortex-m55}, @samp{cortex-m85} and @samp{star-mc1}.
  
  @item  +nofp
  Disables the floating-point instructions on @samp{arm9e},
*************** supported.
*** 30586,30592 ****
  Generate code for the specified PTX ISA target architecture.
  Valid architecture strings are
  @samp{sm_30}, @samp{sm_35}, @samp{sm_37},
! @samp{sm_52}, @samp{sm_53},
  @samp{sm_61},
  @samp{sm_70}, @samp{sm_75},
  @samp{sm_80}, and @samp{sm_89}.
--- 30593,30599 ----
  Generate code for the specified PTX ISA target architecture.
  Valid architecture strings are
  @samp{sm_30}, @samp{sm_35}, @samp{sm_37},
! @samp{sm_50}, @samp{sm_52}, @samp{sm_53},
  @samp{sm_61},
  @samp{sm_70}, @samp{sm_75},
  @samp{sm_80}, and @samp{sm_89}.
*************** capable.  For instance, for @option{-mar
*** 30613,30619 ****
  Generate code for the specified PTX ISA version.
  Valid version strings are
  @samp{3.1},
! @samp{4.1}, @samp{4.2},
  @samp{5.0},
  @samp{6.0}, @samp{6.3},
  @samp{7.0}, @samp{7.3}, and @samp{7.8}.
--- 30620,30626 ----
  Generate code for the specified PTX ISA version.
  Valid version strings are
  @samp{3.1},
! @samp{4.0}, @samp{4.1}, @samp{4.2},
  @samp{5.0},
  @samp{6.0}, @samp{6.3},
  @samp{7.0}, @samp{7.3}, and @samp{7.8}.
diff -Nrcpad gcc-16-20260412/gcc/doc/tm.texi gcc-16-20260419/gcc/doc/tm.texi
*** gcc-16-20260412/gcc/doc/tm.texi	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/doc/tm.texi	Sun Apr 19 22:32:06 2026
*************** control passing certain arguments in reg
*** 4078,4084 ****
  @deftypefn {Target Hook} bool TARGET_PROMOTE_PROTOTYPES (const_tree @var{fntype})
  This target hook returns @code{true} if an argument declared in a
  prototype as an integral type smaller than @code{int} should actually be
! passed as an @code{int}.  In addition to avoiding errors in certain
  cases of mismatch, it also makes for better code on certain machines.
  The default is to not promote prototypes.
  @end deftypefn
--- 4078,4085 ----
  @deftypefn {Target Hook} bool TARGET_PROMOTE_PROTOTYPES (const_tree @var{fntype})
  This target hook returns @code{true} if an argument declared in a
  prototype as an integral type smaller than @code{int} should actually be
! passed as an @code{int}.  This also applies to the type of the first member
! +in a transparent union argument.  In addition to avoiding errors in certain
  cases of mismatch, it also makes for better code on certain machines.
  The default is to not promote prototypes.
  @end deftypefn
diff -Nrcpad gcc-16-20260412/gcc/doc/trouble.texi gcc-16-20260419/gcc/doc/trouble.texi
*** gcc-16-20260412/gcc/doc/trouble.texi	Sun Apr 12 22:32:07 2026
--- gcc-16-20260419/gcc/doc/trouble.texi	Sun Apr 19 22:32:06 2026
*************** give rise to questions of this sort.
*** 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
--- 638,643 ----
*************** copy-assignment operator removes any unc
*** 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
  
--- 912,917 ----
diff -Nrcpad gcc-16-20260412/gcc/fortran/ChangeLog gcc-16-20260419/gcc/fortran/ChangeLog
*** gcc-16-20260412/gcc/fortran/ChangeLog	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/fortran/ChangeLog	Sun Apr 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,29 ----
+ 2026-04-16  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/120140
+ 	* resolve.cc (resolve_elemental_dependencies): New function,
+ 	preceded by prototype for add_temp_assign_before_call.
+ 	(resolve_call): If an elemental subroutine call has at least
+ 	two actual erguments, call resolve_elemental_dependencies to
+ 	generate temporary expressions for the arguments if required.
+ 	(get_temp_from_expr): Add optional boolean argument, which if
+ 	set, makes the resulting temporary unconditionally allocatable.
+ 	(add_temp_assign_before_call): New function.
+ 
+ 2026-04-14  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/124807
+ 	* decl.cc (add_init_expr_to_sym): Suggested by Coverity:
+ 	Check sym->as != NULL before dereferencing it.
+ 
+ 2026-04-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/101760
+ 	PR fortran/102314
+ 	* trans-openmp.cc (gfc_omp_finish_clause): Compute OMP_CLAUSE_SIZE
+ 	from the array domain bounds and element size for VLA types instead
+ 	of using TYPE_SIZE_UNIT directly, to avoid corrupting the type.
+ 
  2026-04-11  Christopher Albert  <albert@tugraz.at>
  
  	PR fortran/93814
diff -Nrcpad gcc-16-20260412/gcc/fortran/decl.cc gcc-16-20260419/gcc/fortran/decl.cc
*** gcc-16-20260412/gcc/fortran/decl.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/fortran/decl.cc	Sun Apr 19 22:32:06 2026
*************** add_init_expr_to_sym (const char *name,
*** 2264,2270 ****
  
        /* If sym is implied-shape, set its upper bounds from init.  */
        if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension
! 	  && sym->as->type == AS_IMPLIED_SHAPE)
  	{
  	  int dim;
  
--- 2264,2270 ----
  
        /* If sym is implied-shape, set its upper bounds from init.  */
        if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension
! 	  && sym->as && sym->as->type == AS_IMPLIED_SHAPE)
  	{
  	  int dim;
  
*************** add_init_expr_to_sym (const char *name,
*** 2333,2339 ****
  
        /* Ensure that explicit bounds are simplified.  */
        if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension
! 	  && sym->as->type == AS_EXPLICIT)
  	{
  	  for (int dim = 0; dim < sym->as->rank; ++dim)
  	    {
--- 2333,2339 ----
  
        /* Ensure that explicit bounds are simplified.  */
        if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension
! 	  && sym->as && sym->as->type == AS_EXPLICIT)
  	{
  	  for (int dim = 0; dim < sym->as->rank; ++dim)
  	    {
diff -Nrcpad gcc-16-20260412/gcc/fortran/invoke.texi gcc-16-20260419/gcc/fortran/invoke.texi
*** gcc-16-20260412/gcc/fortran/invoke.texi	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/fortran/invoke.texi	Sun Apr 19 22:32:06 2026
*************** shared by @command{gfortran}, @command{g
*** 2238,2244 ****
  
  @table @gcctabopt
  
! @opindex c-prototypes
  @cindex Generating C prototypes from Fortran BIND(C) enteties
  @item -fc-prototypes
  This option generates C prototypes from @code{BIND(C)} variable
--- 2238,2244 ----
  
  @table @gcctabopt
  
! @opindex fc-prototypes
  @cindex Generating C prototypes from Fortran BIND(C) enteties
  @item -fc-prototypes
  This option generates C prototypes from @code{BIND(C)} variable
*************** $ gfortran -fc-prototypes -fsyntax-only
*** 2261,2267 ****
  where the C code intended for interoperating with the Fortran code
  then uses @code{#include "foo.h"}.
  
! @opindex c-prototypes-external
  @cindex Generating C prototypes from external procedures
  @item -fc-prototypes-external
  This option generates C prototypes from external functions and
--- 2261,2267 ----
  where the C code intended for interoperating with the Fortran code
  then uses @code{#include "foo.h"}.
  
! @opindex fc-prototypes-external
  @cindex Generating C prototypes from external procedures
  @item -fc-prototypes-external
  This option generates C prototypes from external functions and
diff -Nrcpad gcc-16-20260412/gcc/fortran/lang.opt.urls gcc-16-20260419/gcc/fortran/lang.opt.urls
*** gcc-16-20260412/gcc/fortran/lang.opt.urls	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/fortran/lang.opt.urls	Sun Apr 19 22:32:06 2026
*************** LangUrlSuffix_Fortran(gfortran/Code-Gen-
*** 312,317 ****
--- 312,323 ----
  fcray-pointer
  LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fcray-pointer)
  
+ fc-prototypes
+ LangUrlSuffix_Fortran(gfortran/Interoperability-Options.html#index-fc-prototypes)
+ 
+ fc-prototypes-external
+ LangUrlSuffix_Fortran(gfortran/Interoperability-Options.html#index-fc-prototypes-external)
+ 
  fd-lines-as-code
  LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fd-lines-as-code)
  
diff -Nrcpad gcc-16-20260412/gcc/fortran/resolve.cc gcc-16-20260419/gcc/fortran/resolve.cc
*** gcc-16-20260412/gcc/fortran/resolve.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/fortran/resolve.cc	Sun Apr 19 22:32:06 2026
*************** check_import_status (gfc_expr *e)
*** 4129,4134 ****
--- 4129,4183 ----
  }
  
  
+ /* If an elemental call has an INTENT_IN argument that has a dependency on an
+    argument which is not INTENT_IN and requires a temporary, build a temporary
+    for the INTENT_IN actual argument as well.  */
+ 
+ static void
+ add_temp_assign_before_call (gfc_code *, gfc_namespace *, gfc_expr **);
+ 
+ static void
+ resolve_elemental_dependencies (gfc_code *c)
+ {
+   gfc_actual_arglist *arg1 = c->ext.actual;
+   gfc_actual_arglist *arg2 = NULL;
+   gfc_formal_arglist *formal1 = c->resolved_sym->formal;
+   gfc_formal_arglist *formal2 = NULL;
+   gfc_expr *expr1;
+   gfc_expr **expr2;
+ 
+   for (; arg1 && formal1; arg1 = arg1->next, formal1 = formal1->next)
+     {
+       if (formal1->sym
+ 	  && (formal1->sym->attr.intent == INTENT_IN
+ 	      || formal1->sym->attr.value))
+ 	continue;
+ 
+       if (!arg1->expr || arg1->expr->expr_type != EXPR_VARIABLE)
+ 	continue;
+ 
+       arg2 = c->ext.actual;
+       formal2 = c->resolved_sym->formal;
+       for (; arg2 && formal2; arg2 = arg2->next, formal2 = formal2->next)
+ 	{
+ 	  if (arg2 == arg1 || !arg2->expr
+ 	      || !(formal2->sym && formal2->sym->attr.intent == INTENT_IN))
+ 	    continue;
+ 
+ 	  expr1 = arg1->expr;
+ 	  expr2 = &arg2->expr;
+ 
+ 	  /* If the arg1 has something horrible like a vector index and
+ 	     there is a dependency between arg1 and arg2, build a
+ 	     temporary from arg2, assign the arg2 to it and use the
+ 	     temporary in the call expression.  */
+ 	  if (expr1->rank && gfc_ref_needs_temporary_p (expr1->ref)
+ 	      && gfc_check_dependency (expr1, *expr2, false))
+ 	    add_temp_assign_before_call (c, gfc_current_ns, expr2);
+ 	}
+     }
+ }
+ 
  /* Resolve a subroutine call.  Although it was tempting to use the same code
     for functions, subroutines and functions are stored differently and this
     makes things awkward.  */
*************** resolve_call (gfc_code *c)
*** 4289,4294 ****
--- 4338,4348 ----
    if (!resolve_elemental_actual (NULL, c))
      return false;
  
+   /* Deal with complicated dependencies that the scalarizer cannot handle.  */
+   if (c->resolved_sym && c->resolved_sym->attr.elemental && !no_formal_args
+       && c->ext.actual && c->ext.actual->next)
+     resolve_elemental_dependencies (c);
+ 
    if (!c->expr1)
      update_current_proc_array_outer_dependency (csym);
    else
*************** build_assignment (gfc_exec_op op, gfc_ex
*** 13308,13317 ****
  
  
  /* Makes a temporary variable expression based on the characteristics of
!    a given variable expression.  */
  
  static gfc_expr*
! get_temp_from_expr (gfc_expr *e, gfc_namespace *ns)
  {
    static int serial = 0;
    char name[GFC_MAX_SYMBOL_LEN];
--- 13362,13373 ----
  
  
  /* Makes a temporary variable expression based on the characteristics of
!    a given variable expression.  If allocatable is set, the temporary is
!    unconditionally allocatable*/
  
  static gfc_expr*
! get_temp_from_expr (gfc_expr *e, gfc_namespace *ns,
! 		    bool allocatable = false)
  {
    static int serial = 0;
    char name[GFC_MAX_SYMBOL_LEN];
*************** get_temp_from_expr (gfc_expr *e, gfc_nam
*** 13365,13371 ****
    tmp->n.sym->attr.intent = INTENT_UNKNOWN;
  
  
!   if (as)
      {
        tmp->n.sym->as = gfc_copy_array_spec (as);
        if (!ref)
--- 13421,13427 ----
    tmp->n.sym->attr.intent = INTENT_UNKNOWN;
  
  
!   if (as && !allocatable)
      {
        tmp->n.sym->as = gfc_copy_array_spec (as);
        if (!ref)
*************** get_temp_from_expr (gfc_expr *e, gfc_nam
*** 13375,13381 ****
      }
    else if ((e->rank || e->corank)
  	   && (e->expr_type == EXPR_ARRAY || e->expr_type == EXPR_FUNCTION
! 	       || e->expr_type == EXPR_OP))
      {
        tmp->n.sym->as = gfc_get_array_spec ();
        tmp->n.sym->as->type = AS_DEFERRED;
--- 13431,13437 ----
      }
    else if ((e->rank || e->corank)
  	   && (e->expr_type == EXPR_ARRAY || e->expr_type == EXPR_FUNCTION
! 	       || e->expr_type == EXPR_OP || allocatable))
      {
        tmp->n.sym->as = gfc_get_array_spec ();
        tmp->n.sym->as->type = AS_DEFERRED;
*************** get_temp_from_expr (gfc_expr *e, gfc_nam
*** 13394,13400 ****
  
    /* Should the lhs be a section, use its array ref for the
       temporary expression.  */
!   if (aref && aref->type != AR_FULL)
      {
        gfc_free_ref_list (e->ref);
        e->ref = gfc_copy_ref (ref);
--- 13450,13456 ----
  
    /* Should the lhs be a section, use its array ref for the
       temporary expression.  */
!   if (aref && aref->type != AR_FULL && !allocatable)
      {
        gfc_free_ref_list (e->ref);
        e->ref = gfc_copy_ref (ref);
*************** get_temp_from_expr (gfc_expr *e, gfc_nam
*** 13403,13408 ****
--- 13459,13503 ----
  }
  
  
+ /* Helper function to take an argument in a subroutine call with a dependency
+    on another argument, copy it to an allocatable temporary and use the
+    temporary in the call expression. The new code is embedded in a block to
+    ensure local, automatic deallocation.  */
+ 
+ static void
+ add_temp_assign_before_call (gfc_code *code, gfc_namespace *ns,
+ 			     gfc_expr **rhsptr)
+ {
+   gfc_namespace *block_ns;
+   gfc_expr *tmp_var;
+ 
+   /* Wrap the new code in a block so that the temporary is deallocated.  */
+   block_ns = gfc_build_block_ns (ns);
+ 
+   /* As it stands, the block_ns does not not stand up to resolution because the
+      the assignment would be converted to a call and, in any case, the modified
+      call fails in gfc_check_conformance.  */
+   block_ns->resolved = 1;
+ 
+   /* Assign the original expression to the temporary.  */
+   tmp_var = get_temp_from_expr (*rhsptr, block_ns, true);
+   block_ns->code = build_assignment (EXEC_ASSIGN, tmp_var, *rhsptr,
+ 				     NULL, NULL, (*rhsptr)->where);
+ 
+   /* Transfer the call to the block and terminate block code.  */
+   *rhsptr = gfc_copy_expr (tmp_var);
+   block_ns->code->next = gfc_get_code (EXEC_NOP);
+   *(block_ns->code->next) = *code;
+   block_ns->code->next->next = NULL;
+ 
+   /* Convert the original code to execute the block.  */
+   code->op = EXEC_BLOCK;
+   code->ext.block.ns = block_ns;
+   code->ext.block.assoc = NULL;
+   code->expr1 = code->expr2 = NULL;
+ }
+ 
+ 
  /* Add one line of code to the code chain, making sure that 'head' and
     'tail' are appropriately updated.  */
  
diff -Nrcpad gcc-16-20260412/gcc/fortran/trans-openmp.cc gcc-16-20260419/gcc/fortran/trans-openmp.cc
*** gcc-16-20260412/gcc/fortran/trans-openmp.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/fortran/trans-openmp.cc	Sun Apr 19 22:32:06 2026
*************** gfc_omp_finish_clause (tree c, gimple_se
*** 1839,1847 ****
    else
      {
        if (OMP_CLAUSE_SIZE (c) == NULL_TREE)
! 	OMP_CLAUSE_SIZE (c)
! 	  = DECL_P (decl) ? DECL_SIZE_UNIT (decl)
! 			  : TYPE_SIZE_UNIT (TREE_TYPE (decl));
  
        tree type = TREE_TYPE (decl);
        if (POINTER_TYPE_P (type) && POINTER_TYPE_P (TREE_TYPE (type)))
--- 1839,1877 ----
    else
      {
        if (OMP_CLAUSE_SIZE (c) == NULL_TREE)
! 	{
! 	  if (DECL_P (decl))
! 	    OMP_CLAUSE_SIZE (c) = DECL_SIZE_UNIT (decl);
! 	  else
! 	    {
! 	      tree type = TREE_TYPE (decl);
! 	      tree size = TYPE_SIZE_UNIT (type);
! 	      /* For variable-length character types, TYPE_SIZE_UNIT is a
! 		 SAVE_EXPR.  Gimplifying the SAVE_EXPR (here or elsewhere)
! 		 resolves it in place, embedding a gimple temporary that
! 		 later causes an ICE in remap_type during inlining because
! 		 the temporary is not in scope (PR101760, PR102314).
! 		 Compute the size from the array domain and element size
! 		 to decouple completely from the type's SAVE_EXPRs.  */
! 	      if (size
! 		  && TREE_CODE (type) == ARRAY_TYPE
! 		  && TYPE_DOMAIN (type)
! 		  && TYPE_MAX_VALUE (TYPE_DOMAIN (type))
! 		  && !TREE_CONSTANT (TYPE_MAX_VALUE (TYPE_DOMAIN (type))))
! 		{
! 		  tree len = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
! 		  tree lb = TYPE_MIN_VALUE (TYPE_DOMAIN (type));
! 		  tree eltsz = TYPE_SIZE_UNIT (TREE_TYPE (type));
! 		  len = fold_build2 (MINUS_EXPR, TREE_TYPE (len), len, lb);
! 		  len = fold_build2 (PLUS_EXPR, TREE_TYPE (len), len,
! 				     build_one_cst (TREE_TYPE (len)));
! 		  size = fold_build2 (MULT_EXPR, sizetype,
! 				      fold_convert (sizetype, len),
! 				      fold_convert (sizetype, eltsz));
! 		}
! 	      OMP_CLAUSE_SIZE (c) = size;
! 	    }
! 	}
  
        tree type = TREE_TYPE (decl);
        if (POINTER_TYPE_P (type) && POINTER_TYPE_P (TREE_TYPE (type)))
diff -Nrcpad gcc-16-20260412/gcc/gimple-crc-optimization.cc gcc-16-20260419/gcc/gimple-crc-optimization.cc
*** gcc-16-20260412/gcc/gimple-crc-optimization.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/gimple-crc-optimization.cc	Sun Apr 19 22:32:06 2026
*************** along with GCC; see the file COPYING3.
*** 32,37 ****
--- 32,39 ----
  #include "cfgloop.h"
  #include "tree-scalar-evolution.h"
  #include "crc-verification.h"
+ #include "internal-fn.h"
+ #include "predict.h"
  
  class crc_optimization {
   private:
*************** class crc_optimization {
*** 225,234 ****
    /* Returns phi statement which may hold the calculated CRC.  */
    gphi *get_output_phi ();
  
!   /* Attempts to optimize a CRC calculation loop by replacing it with a call to
!      an internal function (IFN_CRC or IFN_CRC_REV).
       Returns true if replacement succeeded, otherwise false.  */
!   bool optimize_crc_loop (gphi *output_crc);
  
   public:
    crc_optimization () : m_visited_stmts (BITMAP_ALLOC (NULL)),
--- 227,236 ----
    /* Returns phi statement which may hold the calculated CRC.  */
    gphi *get_output_phi ();
  
!   /* Attempts to optimize a CRC calculation calculated by LOOP by replacing it
!      with a call to an internal function (IFN_CRC or IFN_CRC_REV).
       Returns true if replacement succeeded, otherwise false.  */
!   bool optimize_crc_loop (class loop *loop, gphi *output_crc);
  
   public:
    crc_optimization () : m_visited_stmts (BITMAP_ALLOC (NULL)),
*************** crc_optimization::get_output_phi ()
*** 1221,1227 ****
     Returns true if replacement succeeded, otherwise false.  */
  
  bool
! crc_optimization::optimize_crc_loop (gphi *output_crc)
  {
    if (!output_crc)
      {
--- 1223,1229 ----
     Returns true if replacement succeeded, otherwise false.  */
  
  bool
! crc_optimization::optimize_crc_loop (class loop *loop, gphi *output_crc)
  {
    if (!output_crc)
      {
*************** crc_optimization::optimize_crc_loop (gph
*** 1260,1265 ****
--- 1262,1279 ----
    location_t loc;
    loc = EXPR_LOCATION (phi_result);
  
+   /* If the target does not have an expansion for CRC optimally then the table
+      based lookup will need at least 255-bytes of RODATA and won't be smaller
+      than the original code itself.  */
+   if (!optimize_loop_for_speed_p (loop))
+     {
+       tree data_type = TREE_TYPE (m_data_arg);
+       tree result_type = TREE_TYPE (phi_result);
+       auto ty_pair = tree_pair (data_type, result_type);
+       if (!direct_internal_fn_supported_p (ifn, ty_pair, OPTIMIZE_FOR_BOTH))
+ 	return false;
+     }
+ 
    /* Add IFN call and write the return value in the phi_result.  */
    gcall *call = gimple_build_call_internal (ifn, 3, m_crc_arg, m_data_arg,
  					    polynomial_arg);
*************** crc_optimization::execute (function *fun
*** 1337,1343 ****
  	    fprintf (dump_file, "The loop with %d header BB index "
  				"calculates CRC!\n", m_crc_loop->header->index);
  
! 	  if (!optimize_crc_loop (output_crc))
  	    {
  	      if (dump_file)
  		fprintf (dump_file, "Couldn't generate faster CRC code.\n");
--- 1351,1357 ----
  	    fprintf (dump_file, "The loop with %d header BB index "
  				"calculates CRC!\n", m_crc_loop->header->index);
  
! 	  if (!optimize_crc_loop (loop, output_crc))
  	    {
  	      if (dump_file)
  		fprintf (dump_file, "Couldn't generate faster CRC code.\n");
diff -Nrcpad gcc-16-20260412/gcc/gimple-lower-bitint.cc gcc-16-20260419/gcc/gimple-lower-bitint.cc
*** gcc-16-20260412/gcc/gimple-lower-bitint.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/gimple-lower-bitint.cc	Sun Apr 19 22:32:06 2026
*************** enum bitint_prec_kind {
*** 77,83 ****
  
  static int small_max_prec, mid_min_prec, large_min_prec, huge_min_prec;
  static int limb_prec, abi_limb_prec;
! static bool bitint_big_endian, bitint_extended;
  
  /* Categorize _BitInt(PREC) as small, middle, large or huge.  */
  
--- 77,84 ----
  
  static int small_max_prec, mid_min_prec, large_min_prec, huge_min_prec;
  static int limb_prec, abi_limb_prec;
! static bool bitint_big_endian;
! static enum bitint_ext bitint_extended;
  
  /* Categorize _BitInt(PREC) as small, middle, large or huge.  */
  
*************** bitint_precision_kind (int prec)
*** 104,109 ****
--- 105,112 ----
      }
    bitint_big_endian = info.big_endian;
    bitint_extended = info.extended;
+   if (info.limb_mode == info.abi_limb_mode && bitint_extended == bitint_ext_full)
+     bitint_extended = bitint_ext_partial;
    if (!large_min_prec
        && GET_MODE_PRECISION (limb_mode) <= MAX_FIXED_MODE_SIZE)
      large_min_prec = MAX_FIXED_MODE_SIZE + 1;
*************** bitint_large_huge::limb_access_type (tre
*** 599,605 ****
      return m_limb_type;
    unsigned HOST_WIDE_INT i = tree_to_uhwi (idx);
    unsigned int prec = TYPE_PRECISION (type);
!   gcc_assert (i * limb_prec < prec);
    if (bitint_big_endian
        ? (i != 0 || (prec % limb_prec) == 0)
        : (i + 1) * limb_prec <= prec)
--- 602,612 ----
      return m_limb_type;
    unsigned HOST_WIDE_INT i = tree_to_uhwi (idx);
    unsigned int prec = TYPE_PRECISION (type);
!   gcc_assert (i * limb_prec < prec
! 	      || (bitint_extended == bitint_ext_full
! 		  && abi_limb_prec > limb_prec
! 		  && i * limb_prec
! 		     < CEIL (prec, abi_limb_prec) * abi_limb_prec));
    if (bitint_big_endian
        ? (i != 0 || (prec % limb_prec) == 0)
        : (i + 1) * limb_prec <= prec)
*************** bitint_large_huge::handle_load (gimple *
*** 1985,1990 ****
--- 1992,2001 ----
    edge eh_edge = NULL;
    gimple *g;
  
+   if (TREE_CODE (rhs1) == BIT_FIELD_REF
+       && integer_zerop (TREE_OPERAND (rhs1, 2)))
+     rhs1 = TREE_OPERAND (rhs1, 0);
+ 
    if (eh)
      {
        edge_iterator ei;
*************** bitint_large_huge::lower_mergeable_stmt
*** 2866,2871 ****
--- 2877,2892 ----
      = (prec != (unsigned) TYPE_PRECISION (type)
         && (CEIL ((unsigned) TYPE_PRECISION (type), limb_prec)
  	   > CEIL (prec, limb_prec)));
+   if (bitint_extended == bitint_ext_full
+       && !eq_p
+       && abi_limb_prec > limb_prec
+       && ((CEIL ((unsigned) TYPE_PRECISION (type), abi_limb_prec)
+ 	   * abi_limb_prec / limb_prec) > CEIL (prec, limb_prec)))
+     {
+       if (prec == (unsigned) TYPE_PRECISION (type))
+ 	sext = !TYPE_UNSIGNED (type);
+       separate_ext = true;
+     }
    unsigned dst_idx_off = 0;
    if (separate_ext && bitint_big_endian)
      dst_idx_off = (CEIL ((unsigned) TYPE_PRECISION (type), limb_prec)
*************** bitint_large_huge::lower_mergeable_stmt
*** 3103,3108 ****
--- 3124,3134 ----
        kind = bitint_precision_kind (type);
        unsigned start = CEIL (prec, limb_prec);
        prec = TYPE_PRECISION (type);
+       if (bitint_extended == bitint_ext_full && abi_limb_prec > limb_prec)
+ 	{
+ 	  prec = CEIL (prec, abi_limb_prec) * abi_limb_prec;
+ 	  kind = bitint_precision_kind (prec);
+ 	}
        unsigned total = CEIL (prec, limb_prec);
        idx = idx_first = idx_next = NULL_TREE;
        if (prec <= (start + 2 + (bo_shift != 0)) * limb_prec)
*************** bitint_large_huge::lower_muldiv_stmt (tr
*** 3960,3965 ****
--- 3986,3992 ----
    gcc_assert (TREE_CODE (type) == BITINT_TYPE
  	      && bitint_precision_kind (type) >= bitint_prec_large);
    int prec = TYPE_PRECISION (type), prec1, prec2;
+   bool zero_ms_limb = false;
    rhs1 = handle_operand_addr (rhs1, stmt, NULL, &prec1);
    rhs2 = handle_operand_addr (rhs2, stmt, NULL, &prec2);
    if (obj == NULL_TREE)
*************** bitint_large_huge::lower_muldiv_stmt (tr
*** 3975,3980 ****
--- 4002,4019 ----
        lhs = force_gimple_operand_gsi (&m_gsi, lhs, true,
  				      NULL_TREE, true, GSI_SAME_STMT);
      }
+   if (bitint_extended == bitint_ext_full
+       && abi_limb_prec > limb_prec
+       && (CEIL (prec, abi_limb_prec) * abi_limb_prec
+ 	  > CEIL (prec, limb_prec) * limb_prec))
+     {
+       /* unsigned multiplication needs to wrap around, so we can't
+ 	 increase prec.  */
+       if (rhs_code == MULT_EXPR && TYPE_UNSIGNED (type))
+ 	zero_ms_limb = true;
+       else
+ 	prec = CEIL (prec, abi_limb_prec) * abi_limb_prec;
+     }
    tree sitype = lang_hooks.types.type_for_mode (SImode, 0);
    gimple *g;
    switch (rhs_code)
*************** bitint_large_huge::lower_muldiv_stmt (tr
*** 4028,4033 ****
--- 4067,4079 ----
  	  add_eh_edge (e2->src, e1);
  	}
      }
+   if (zero_ms_limb)
+     {
+       unsigned int i = CEIL (prec, abi_limb_prec) * abi_limb_prec / limb_prec;
+       g = gimple_build_assign (limb_access (type, obj, size_int (i - 1), true),
+ 			       build_zero_cst (m_limb_type));
+       insert_before (g);
+     }
  }
  
  /* Lower large/huge _BitInt conversion to/from floating point.  */
*************** bitint_large_huge::lower_float_conv_stmt
*** 4042,4049 ****
    gimple *g;
    if (rhs_code == FIX_TRUNC_EXPR)
      {
!       int prec = TYPE_PRECISION (TREE_TYPE (lhs));
!       if (!TYPE_UNSIGNED (TREE_TYPE (lhs)))
  	prec = -prec;
        if (obj == NULL_TREE)
  	{
--- 4088,4102 ----
    gimple *g;
    if (rhs_code == FIX_TRUNC_EXPR)
      {
!       tree type = TREE_TYPE (lhs);
!       int prec = TYPE_PRECISION (type);
!       bool extend_ms_limb = false;
!       if (bitint_extended == bitint_ext_full
! 	  && abi_limb_prec > limb_prec
! 	  && (CEIL (prec, abi_limb_prec) * abi_limb_prec
! 	      > CEIL (prec, limb_prec) * limb_prec))
! 	extend_ms_limb = true;
!       if (!TYPE_UNSIGNED (type))
  	prec = -prec;
        if (obj == NULL_TREE)
  	{
*************** bitint_large_huge::lower_float_conv_stmt
*** 4077,4082 ****
--- 4130,4161 ----
  				      lhs, build_int_cst (sitype, prec),
  				      rhs1);
        insert_before (g);
+       if (extend_ms_limb)
+ 	{
+ 	  unsigned int i
+ 	    = (CEIL (prec < 0 ? -prec : prec, abi_limb_prec)
+ 	       * abi_limb_prec / limb_prec);
+ 	  tree val;
+ 	  if (prec < 0)
+ 	    {
+ 	      g = gimple_build_assign (make_ssa_name (m_limb_type),
+ 				       limb_access (type, obj,
+ 						    size_int (i - 2),
+ 						    true));
+ 	      insert_before (g);
+ 	      g = gimple_build_assign (make_ssa_name (m_limb_type),
+ 				       RSHIFT_EXPR, gimple_assign_lhs (g),
+ 				       build_int_cst (unsigned_type_node,
+ 						      limb_prec - 1));
+ 	      insert_before (g);
+ 	      val = gimple_assign_lhs (g);
+ 	    }
+ 	  else
+ 	    val = build_zero_cst (m_limb_type);
+ 	  g = gimple_build_assign (limb_access (type, obj, size_int (i - 1),
+ 						true), val);
+ 	  insert_before (g);
+ 	}
      }
    else
      {
diff -Nrcpad gcc-16-20260412/gcc/gimple-ssa-isolate-paths.cc gcc-16-20260419/gcc/gimple-ssa-isolate-paths.cc
*** gcc-16-20260412/gcc/gimple-ssa-isolate-paths.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/gimple-ssa-isolate-paths.cc	Sun Apr 19 22:32:06 2026
*************** handle_return_addr_local_phi_arg (basic_
*** 641,647 ****
        if (!return_stmt)
  	continue;
  
!       if (gimple_return_retval (return_stmt) != lhs)
  	continue;
  
        /* Add an entry for the return statement and the locations
--- 641,648 ----
        if (!return_stmt)
  	continue;
  
!       if (gimple_return_retval (return_stmt) != lhs
! 	  || !dominated_by_p (CDI_DOMINATORS, gimple_bb (use_stmt), bb))
  	continue;
  
        /* Add an entry for the return statement and the locations
*************** find_implicit_erroneous_behavior (void)
*** 715,738 ****
   	 is then dereferenced within BB.  This is somewhat overly
  	 conservative, but probably catches most of the interesting
  	 cases.   */
        for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
  	{
  	  gphi *phi = si.phi ();
  	  tree lhs = gimple_phi_result (phi);
  
- 	  /* Initial number of PHI arguments.  The result may change
- 	     from one iteration of the loop below to the next in
- 	     response to changes to the CFG but only the initial
- 	     value is stored below for use by diagnostics.  */
- 	  unsigned nargs = gimple_phi_num_args (phi);
- 
  	  /* PHI produces a pointer result.  See if any of the PHI's
  	     arguments are NULL.
  
  	     When we remove an edge, we want to reprocess the current
  	     index since the argument at that index will have been
  	     removed, hence the ugly way we update I for each iteration.  */
- 	  basic_block duplicate = NULL;
  	  for (unsigned i = 0, next_i = 0;
  	       i < gimple_phi_num_args (phi); i = next_i)
  	    {
--- 716,733 ----
   	 is then dereferenced within BB.  This is somewhat overly
  	 conservative, but probably catches most of the interesting
  	 cases.   */
+       basic_block duplicate = NULL;
        for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
  	{
  	  gphi *phi = si.phi ();
  	  tree lhs = gimple_phi_result (phi);
  
  	  /* PHI produces a pointer result.  See if any of the PHI's
  	     arguments are NULL.
  
  	     When we remove an edge, we want to reprocess the current
  	     index since the argument at that index will have been
  	     removed, hence the ugly way we update I for each iteration.  */
  	  for (unsigned i = 0, next_i = 0;
  	       i < gimple_phi_num_args (phi); i = next_i)
  	    {
*************** find_implicit_erroneous_behavior (void)
*** 742,756 ****
  	      /* Advance the argument index unless a path involving
  		 the current argument has been isolated.  */
  	      next_i = i + 1;
- 	      bool isolated = false;
- 	      duplicate = handle_return_addr_local_phi_arg (bb, duplicate, lhs,
- 							    arg, e, locmap,
- 							    nargs, &isolated);
- 	      if (isolated)
- 		{
- 		  cfg_altered = true;
- 		  next_i = i;
- 		}
  
  	      if (!integer_zerop (arg))
  		continue;
--- 737,742 ----
*************** find_implicit_erroneous_behavior (void)
*** 794,799 ****
--- 780,827 ----
  		}
  	    }
  	}
+ 
+       /* Then look for a PHI which have addresses of locals that
+ 	 are then returned.  */
+       duplicate = NULL;
+       for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
+ 	{
+ 	  gphi *phi = si.phi ();
+ 	  tree lhs = gimple_phi_result (phi);
+ 
+ 	  /* Initial number of PHI arguments.  The result may change
+ 	     from one iteration of the loop below to the next in
+ 	     response to changes to the CFG but only the initial
+ 	     value is stored below for use by diagnostics.  */
+ 	  unsigned nargs = gimple_phi_num_args (phi);
+ 
+ 	  /* PHI produces a pointer result.  See if any of the PHI's
+ 	     arguments are NULL.
+ 
+ 	     When we remove an edge, we want to reprocess the current
+ 	     index since the argument at that index will have been
+ 	     removed, hence the ugly way we update I for each iteration.  */
+ 	  for (unsigned i = 0, next_i = 0;
+ 	       i < gimple_phi_num_args (phi); i = next_i)
+ 	    {
+ 	      tree arg = gimple_phi_arg_def (phi, i);
+ 	      edge e = gimple_phi_arg_edge (phi, i);
+ 
+ 	      /* Advance the argument index unless a path involving
+ 		 the current argument has been isolated.  */
+ 	      next_i = i + 1;
+ 	      bool isolated = false;
+ 	      duplicate = handle_return_addr_local_phi_arg (bb, duplicate, lhs,
+ 							    arg, e, locmap,
+ 							    nargs, &isolated);
+ 	      if (isolated)
+ 		{
+ 		  cfg_altered = true;
+ 		  next_i = i;
+ 		}
+ 	    }
+ 	}
+ 
      }
  
    diag_returned_locals (false, locmap);
diff -Nrcpad gcc-16-20260412/gcc/ipa-cp.cc gcc-16-20260419/gcc/ipa-cp.cc
*** gcc-16-20260412/gcc/ipa-cp.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/ipa-cp.cc	Sun Apr 19 22:32:06 2026
*************** initialize_node_lattices (struct cgraph_
*** 1544,1550 ****
     propagated to a parameter of type PARAM_TYPE, or return a fold-converted
     VALUE to PARAM_TYPE if that is possible.  Return NULL_TREE otherwise.  */
  
! static tree
  ipacp_value_safe_for_type (tree param_type, tree value)
  {
    if (!value)
--- 1544,1550 ----
     propagated to a parameter of type PARAM_TYPE, or return a fold-converted
     VALUE to PARAM_TYPE if that is possible.  Return NULL_TREE otherwise.  */
  
! tree
  ipacp_value_safe_for_type (tree param_type, tree value)
  {
    if (!value)
diff -Nrcpad gcc-16-20260412/gcc/ipa-cp.h gcc-16-20260419/gcc/ipa-cp.h
*** gcc-16-20260412/gcc/ipa-cp.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/ipa-cp.h	Sun Apr 19 22:32:06 2026
*************** bool ipa_vr_operation_and_type_effects (
*** 323,328 ****
--- 323,329 ----
  					const ipa_vr &src_vr,
  					enum tree_code operation,
  					tree dst_type, tree src_type);
+ tree ipacp_value_safe_for_type (tree param_type, tree value);
  
  
  
diff -Nrcpad gcc-16-20260412/gcc/ipa-devirt.cc gcc-16-20260419/gcc/ipa-devirt.cc
*** gcc-16-20260412/gcc/ipa-devirt.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/ipa-devirt.cc	Sun Apr 19 22:32:06 2026
*************** struct GTY(()) odr_type_d
*** 227,234 ****
--- 227,243 ----
    bool rtti_broken;
    /* Set when the canonical type is determined using the type name.  */
    bool tbaa_enabled;
+   /* Set when we determined there are no derived construction vtables.  */
+   bool no_derived_construction_vtables;
  };
  
+ /* ODR types also stored into ODR_TYPE vector to allow consistent
+    walking.  Bases appear before derived types.  Vector is garbage collected
+    so we won't end up visiting empty types.  */
+ 
+ static GTY(()) vec <odr_type, va_gc> *odr_types_ptr;
+ #define odr_types (*odr_types_ptr)
+ 
  /* Return TRUE if all derived types of T are known and thus
     we may consider the walk of derived type complete.
  
*************** type_all_ctors_visible_p (tree t)
*** 268,273 ****
--- 277,322 ----
  	 && type_in_anonymous_namespace_p (t);
  }
  
+ /* Return true if VTABLE is is a virtual table of an anonymous namespace
+    type and it is not the main virtual table for its type.  */
+ 
+ static bool
+ anonymous_construction_vtable_p (tree vtable)
+ {
+   if (!DECL_VIRTUAL_P (vtable)
+       || !type_in_anonymous_namespace_p (DECL_CONTEXT (vtable)))
+     return false;
+   tree vtable2 = BINFO_VTABLE (TYPE_BINFO (DECL_CONTEXT (vtable)));
+   if (TREE_CODE (vtable2) == POINTER_PLUS_EXPR)
+     vtable2 = TREE_OPERAND (TREE_OPERAND (vtable2, 0), 0);
+   return vtable2 != vtable;
+ }
+ 
+ /* Set if construction vtables are computed.  */
+ static bool construction_vtables_detected = false;
+ 
+ /* Mark all bases of T as having derived construction vtables.  */
+ 
+ static void
+ mark_derived_construction_vtables (odr_type t)
+ {
+   for (odr_type b: t->bases)
+     {
+       b->no_derived_construction_vtables = false;
+       mark_derived_construction_vtables (b);
+     }
+ }
+ 
+ /* Watch removal of construction vtables so we recompute their
+    existence.  */
+ 
+ void
+ construction_vtable_hook (varpool_node *v, void *)
+ {
+   if (anonymous_construction_vtable_p (v->decl))
+     construction_vtables_detected = false;
+ }
+ 
  /* Return TRUE if type may have instance.  */
  
  static bool
*************** type_possibly_instantiated_p (tree t)
*** 284,290 ****
    if (TREE_CODE (vtable) == POINTER_PLUS_EXPR)
      vtable = TREE_OPERAND (TREE_OPERAND (vtable, 0), 0);
    vnode = varpool_node::get (vtable);
!   return vnode && vnode->definition;
  }
  
  /* Return true if T or type derived from T may have instance.  */
--- 333,366 ----
    if (TREE_CODE (vtable) == POINTER_PLUS_EXPR)
      vtable = TREE_OPERAND (TREE_OPERAND (vtable, 0), 0);
    vnode = varpool_node::get (vtable);
!   if (vnode && vnode->definition)
!     return true;
! 
!   /* If T is derived, we may see only the construction vtable.
!      To find them, we need to walk symbol table. Cache the result
!      and only recompute when some vtables are removed.  This only
!      happens in unreachable node removal, which is only called
!      constant number of times during computation.  */
!   odr_type odr_t = get_odr_type (t);
!   if (odr_t->derived_types.length () && !construction_vtables_detected)
!     {
!       static bool hook_registered = false;
!       if (!hook_registered)
! 	{
! 	  symtab->add_varpool_removal_hook (construction_vtable_hook, NULL);
! 	  hook_registered = true;
! 	}
!       for (odr_type t: odr_types)
! 	if (t)
! 	  t->no_derived_construction_vtables = true;
!       FOR_EACH_VARIABLE (vnode)
! 	if (vnode->definition
! 	    && anonymous_construction_vtable_p (vnode->decl))
! 	  mark_derived_construction_vtables
! 	    (get_odr_type (DECL_CONTEXT (vnode->decl)));
!       construction_vtables_detected = true;
!     }
!   return !odr_t->no_derived_construction_vtables;
  }
  
  /* Return true if T or type derived from T may have instance.  */
*************** odr_name_hasher::remove (odr_type_d *v)
*** 507,519 ****
  typedef hash_table<odr_name_hasher> odr_hash_type;
  static odr_hash_type *odr_hash;
  
- /* ODR types are also stored into ODR_TYPE vector to allow consistent
-    walking.  Bases appear before derived types.  Vector is garbage collected
-    so we won't end up visiting empty types.  */
- 
- static GTY(()) vec <odr_type, va_gc> *odr_types_ptr;
- #define odr_types (*odr_types_ptr)
- 
  /* All enums defined and accessible for the unit.  */
  static GTY(()) vec <tree, va_gc> *odr_enums;
  
--- 583,588 ----
*************** get_odr_type (tree type, bool insert)
*** 1979,1984 ****
--- 2048,2054 ----
        val->type = type;
        val->bases = vNULL;
        val->derived_types = vNULL;
+       val->no_derived_construction_vtables = false;
        if (type_with_linkage_p (type))
          val->anonymous_namespace = type_in_anonymous_namespace_p (type);
        else
diff -Nrcpad gcc-16-20260412/gcc/ipa-polymorphic-call.cc gcc-16-20260419/gcc/ipa-polymorphic-call.cc
*** gcc-16-20260412/gcc/ipa-polymorphic-call.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/ipa-polymorphic-call.cc	Sun Apr 19 22:32:06 2026
*************** polymorphic_ctor_dtor_p (tree fn, bool c
*** 503,510 ****
  	return NULL_TREE;
      }
  
!   if (flags_from_decl_or_type (fn) & (ECF_PURE | ECF_CONST))
!     return NULL_TREE;
  
    return fn;
  }
--- 503,512 ----
  	return NULL_TREE;
      }
  
!   /* We used to check that the ctor/dtor is not pure/const.
!      However this may interact with pass ordering.  It is possible that the
!      store of vtable is optimized out in offline copy, but inline copies keep
!      it and then local-pure-const overwrites the flag.  See PR120098.  */
  
    return fn;
  }
diff -Nrcpad gcc-16-20260412/gcc/ipa-prop.cc gcc-16-20260419/gcc/ipa-prop.cc
*** gcc-16-20260412/gcc/ipa-prop.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/ipa-prop.cc	Sun Apr 19 22:32:06 2026
*************** ipa_set_jf_unknown (struct ipa_jump_func
*** 680,687 ****
    jfunc->type = IPA_JF_UNKNOWN;
  }
  
! /* Set JFUNC to be a copy of another jmp (to be used by jump function
!    combination code).  The two functions will share their rdesc.  */
  
  static void
  ipa_set_jf_cst_copy (struct ipa_jump_func *dst,
--- 680,687 ----
    jfunc->type = IPA_JF_UNKNOWN;
  }
  
! /* Set DST to be a copy of another SRC.  The two functions will share their
!    rdesc.  */
  
  static void
  ipa_set_jf_cst_copy (struct ipa_jump_func *dst,
*************** ipa_set_jf_cst_copy (struct ipa_jump_fun
*** 693,698 ****
--- 693,728 ----
    dst->value.constant = src->value.constant;
  }
  
+ /* Set DST to be a copy of another jump function SRC but possibly adjust it to
+    a new passed type PARM_TYPE.  If the adjustment fails, the jump function can
+    end up being set to the unknown type.  If the conversion is not necessary or
+    it succeeds and if the destination rdesc has not been already used, the two
+    functions will share their rdesc.  */
+ 
+ static void
+ ipa_convert_prop_cst_jf (struct ipa_jump_func *dst,
+ 			 struct ipa_jump_func *src,
+ 			 tree parm_type)
+ 
+ {
+   gcc_checking_assert (src->type == IPA_JF_CONST);
+   tree new_val = ipacp_value_safe_for_type (parm_type,
+ 					    ipa_get_jf_constant (src));
+   if (new_val)
+     {
+       bool rd = ipa_get_jf_pass_through_refdesc_decremented (dst);
+ 
+       dst->type = IPA_JF_CONST;
+       dst->value.constant.value = new_val;
+       if (!rd)
+ 	dst->value.constant.rdesc = src->value.constant.rdesc;
+       else
+ 	ipa_zap_jf_refdesc (dst);
+     }
+   else
+     ipa_set_jf_unknown (dst);
+ }
+ 
  /* Set JFUNC to be a constant jmp function.  */
  
  static void
*************** update_jump_functions_after_inlining (st
*** 3863,3875 ****
  		  ipa_set_jf_unknown (dst);
  		  break;
  		case IPA_JF_CONST:
! 		  {
! 		    bool rd = ipa_get_jf_pass_through_refdesc_decremented (dst);
! 		    ipa_set_jf_cst_copy (dst, src);
! 		    if (rd)
! 		      ipa_zap_jf_refdesc (dst);
! 		  }
! 
  		  break;
  
  		case IPA_JF_PASS_THROUGH:
--- 3893,3901 ----
  		  ipa_set_jf_unknown (dst);
  		  break;
  		case IPA_JF_CONST:
! 		  ipa_convert_prop_cst_jf (dst, src,
! 					   ipa_get_type (old_inline_root_info,
! 							 dst_fid));
  		  break;
  
  		case IPA_JF_PASS_THROUGH:
diff -Nrcpad gcc-16-20260412/gcc/m2/ChangeLog gcc-16-20260419/gcc/m2/ChangeLog
*** gcc-16-20260412/gcc/m2/ChangeLog	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/ChangeLog	Sun Apr 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,47 ----
+ 2026-04-15  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/124081
+ 	* gm2-compiler/M2Quads.mod (SafeCheckWithField): New procedure.
+ 	(BuildInclRange): Reimplement.
+ 	(AddFieldTo): Ditto.
+ 	(BuildComponentValue): Ditto.
+ 
+ 2026-04-14  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/105408
+ 	* Make-lang.in (GM2-COMP-BOOT-MODS): Remove duplicate NameKey.mod.
+ 	* gm2-compiler/M2GenGCC.mod (import): Remove BuildAssignmentTree.
+ 	Add CopyMemcpy.
+ 	(IsSystemTypeBecomes): New procedure function.
+ 	(CodeAssignment): Rewrite using CopyMemcpy and IsSystemTypeBecomes.
+ 	* gm2-gcc/m2convert.cc (const_to_ISO_aggregate_type): Reverse
+ 	array elements if BYTES_BIG_ENDIAN.
+ 	* gm2-gcc/m2pp.cc (ps): New function.
+ 	* gm2-gcc/m2pp.h (pf): Added comment.
+ 	(pe): Ditto.
+ 	(pt): Ditto.
+ 	(ptl): Ditto.
+ 	(pv): Ditto.
+ 	(ptcl): Ditto.
+ 	* gm2-gcc/m2statement.cc (copy_memcpy): Replace with ...
+ 	(m2statement_CopyMemcpy): ... this.
+ 	(CopyByField_Lower): Call m2statement_CopyMemcpy instead of copy_memcpy.
+ 	(m2statement_BuildAssignmentTree): Tidied up comment.
+ 	Add test for ARRAY_TYPE CONSTRUCTOR expr and use
+ 	m2statement_CopyMemcpy.
+ 	Return type changed to void.
+ 	* gm2-gcc/m2statement.def (BuildAssignmentTree): Rewrite declaration.
+ 	(CopyMemcpy): New procedure declaration.
+ 	* gm2-gcc/m2statement.h (m2statement_BuildAssignmentTree): Replace
+ 	return type with void.
+ 	(m2statement_CopyMemcpy): New function declaration.
+ 	* gm2-gcc/m2type.cc (m2type_ReverseArrayConstructorElements): New
+ 	function.
+ 	* gm2-gcc/m2type.def (ReverseArrayConstructorElements): New
+ 	procedure function declaration.
+ 	* gm2-gcc/m2type.h (m2type_ReverseArrayConstructorElements): New
+ 	function declaration.
+ 
  2026-04-10  Gaius Mulley  <gaiusmod2@gmail.com>
  
  	PR modula2/124840
diff -Nrcpad gcc-16-20260412/gcc/m2/Make-lang.in gcc-16-20260419/gcc/m2/Make-lang.in
*** gcc-16-20260412/gcc/m2/Make-lang.in	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/Make-lang.in	Sun Apr 19 22:32:06 2026
*************** GM2-COMP-BOOT-MODS = \
*** 902,908 ****
     M2SymInit.mod \
     M2System.mod \
     NameKey.mod \
-    NameKey.mod \
     ObjectFiles.mod \
     Output.mod \
     P0SymBuild.mod \
--- 902,907 ----
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-compiler/M2GenGCC.mod gcc-16-20260419/gcc/m2/gm2-compiler/M2GenGCC.mod
*** gcc-16-20260412/gcc/m2/gm2-compiler/M2GenGCC.mod	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-compiler/M2GenGCC.mod	Sun Apr 19 22:32:06 2026
*************** FROM m2statement IMPORT BuildAsm, BuildP
*** 236,242 ****
                          BuildGoto, BuildCall2, BuildCall3,
                          BuildStart, BuildEnd, BuildCallInner, BuildStartFunctionCode,
                          BuildEndFunctionCode,
!                         BuildAssignmentTree, DeclareLabel,
                          BuildFunctionCallTree,
                          BuildAssignmentStatement,
                          BuildIndirectProcedureCallTree,
--- 236,242 ----
                          BuildGoto, BuildCall2, BuildCall3,
                          BuildStart, BuildEnd, BuildCallInner, BuildStartFunctionCode,
                          BuildEndFunctionCode,
!                         DeclareLabel,
                          BuildFunctionCallTree,
                          BuildAssignmentStatement,
                          BuildIndirectProcedureCallTree,
*************** FROM m2statement IMPORT BuildAsm, BuildP
*** 248,254 ****
  			GetParamTree, BuildCleanUp,
  			BuildTryFinally,
  			GetLastFunction, SetLastFunction,
!                         SetBeginLocation, SetEndLocation ;
  
  FROM m2type IMPORT ChainOnParamValue, GetPointerType, GetIntegerType, AddStatement,
                     GetCardinalType, GetWordType, GetM2ZType, GetM2RType, GetM2CType,
--- 248,255 ----
  			GetParamTree, BuildCleanUp,
  			BuildTryFinally,
  			GetLastFunction, SetLastFunction,
!                         SetBeginLocation, SetEndLocation,
! 			CopyMemcpy ;
  
  FROM m2type IMPORT ChainOnParamValue, GetPointerType, GetIntegerType, AddStatement,
                     GetCardinalType, GetWordType, GetM2ZType, GetM2RType, GetM2CType,
*************** BEGIN
*** 3526,3532 ****
     exprtree := FoldConstBecomes (virtpos, des, expr) ;
     IF IsVar (des) AND IsVariableSSA (des)
     THEN
!       Replace (des, exprtree)
     ELSIF IsGccStrictTypeEquivalent (destree, exprtree)
     THEN
        BuildAssignmentStatement (location, destree, exprtree)
--- 3527,3533 ----
     exprtree := FoldConstBecomes (virtpos, des, expr) ;
     IF IsVar (des) AND IsVariableSSA (des)
     THEN
! 	Replace (des, exprtree)
     ELSIF IsGccStrictTypeEquivalent (destree, exprtree)
     THEN
        BuildAssignmentStatement (location, destree, exprtree)
*************** END PerformCodeBecomes ;
*** 3537,3542 ****
--- 3538,3562 ----
  
  
  (*
+    IsSystemTypeBecomes - return TRUE if expr should be copied using
+                          memcpy into des.   If des or expr are generic
+                          system types and expr is not constant then
+                          this is true.
+ *)
+ 
+ PROCEDURE IsSystemTypeBecomes (des, expr: CARDINAL) : BOOLEAN ;
+ BEGIN
+    RETURN (((IsGenericSystemType (SkipType (GetType (des))) #
+              IsGenericSystemType (SkipType (GetType (expr)))) OR
+             (IsUnbounded (SkipType (GetType (des))) AND
+              IsUnbounded (SkipType (GetType (expr))) AND
+              (IsGenericSystemType (SkipType (GetType (GetType (des)))) #
+               IsGenericSystemType (SkipType (GetType (GetType (expr))))))) AND
+ 	   (NOT IsConstant (expr)))
+ END IsSystemTypeBecomes ;
+ 
+ 
+ (*
  ------------------------------------------------------------------------------
     := Operator
  ------------------------------------------------------------------------------
*************** BEGIN
*** 3592,3617 ****
                             'string constant {%1Ea} is too large to be assigned to the array {%2ad}',
                             expr, des, TRUE)
        END ;
!       AddStatement (location,
!                     MaybeDebugBuiltinMemcpy (location,
!                                              BuildAddr (location, Mod2Gcc (des), FALSE),
!                                              BuildAddr (location, exprt, FALSE),
!                                              length))
     ELSE
!       IF ((IsGenericSystemType(SkipType(GetType(des))) #
!            IsGenericSystemType(SkipType(GetType(expr)))) OR
!           (IsUnbounded(SkipType(GetType(des))) AND
!            IsUnbounded(SkipType(GetType(expr))) AND
!            (IsGenericSystemType(SkipType(GetType(GetType(des)))) #
!             IsGenericSystemType(SkipType(GetType(GetType(expr))))))) AND
!          (NOT IsConstant(expr))
        THEN
           checkDeclare (des) ;
!          AddStatement (location,
!                        MaybeDebugBuiltinMemcpy (location,
!                                                 BuildAddr(location, Mod2Gcc (des), FALSE),
!                                                 BuildAddr(location, Mod2Gcc (expr), FALSE),
!                                                 BuildSize(location, Mod2Gcc (des), FALSE)))
        ELSE
           IF checkBecomes (des, expr, virtpos, despos, exprpos)
           THEN
--- 3612,3624 ----
                             'string constant {%1Ea} is too large to be assigned to the array {%2ad}',
                             expr, des, TRUE)
        END ;
!       CopyMemcpy (location, Mod2Gcc (des), exprt, FindSize (virtpos, des))
     ELSE
!       IF IsSystemTypeBecomes (des, expr)
        THEN
           checkDeclare (des) ;
! 	 CopyMemcpy (location, Mod2Gcc (des), Mod2Gcc (expr),
! 		     FindSize (virtpos, des))
        ELSE
           IF checkBecomes (des, expr, virtpos, despos, exprpos)
           THEN
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-compiler/M2Quads.mod gcc-16-20260419/gcc/m2/gm2-compiler/M2Quads.mod
*** gcc-16-20260412/gcc/m2/gm2-compiler/M2Quads.mod	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-compiler/M2Quads.mod	Sun Apr 19 22:32:06 2026
*************** END BuildEmptySet ;
*** 12469,12474 ****
--- 12469,12488 ----
  
  
  (*
+    SafeCheckWithField - only call CheckWithReference if the top of stack
+                         contains a record field.
+ *)
+ 
+ PROCEDURE SafeCheckWithField ;
+ BEGIN
+    IF IsRecordField (OperandT (1))
+    THEN
+       CheckWithReference
+    END
+ END SafeCheckWithField ;
+ 
+ 
+ (*
     BuildInclRange - includes a set range with a set.
  
  
*************** VAR
*** 12496,12502 ****
--- 12510,12518 ----
     value   : CARDINAL ;
  BEGIN
     PopT(el2) ;
+    SafeCheckWithField ;
     PopT(el1) ;
+    SafeCheckWithField ;
     PopT(value) ;
     IF NOT IsConstSet(value)
     THEN
*************** VAR
*** 12545,12550 ****
--- 12561,12567 ----
     tok         : CARDINAL ;
     el, value, t: CARDINAL ;
  BEGIN
+    SafeCheckWithField ;
     PopT(el) ;
     PopT(value) ;
     tok := GetTokenNo () ;
*************** BEGIN
*** 12562,12576 ****
           doIndrX(tok, t, el) ;
           el := t
        END ;
!       IF IsConst(value)
        THEN
!          (* move constant into a variable to achieve the include *)
!          t := MakeTemporary(tok, RightValue) ;
!          PutVar(t, GetSType(value)) ;
!          GenQuad(BecomesOp, t, NulSym, value) ;
           value := t
        END ;
!       GenQuad(InclOp, value, NulSym, el)
     END ;
     PushT(value)
  END BuildInclBit ;
--- 12579,12593 ----
           doIndrX(tok, t, el) ;
           el := t
        END ;
!       IF IsConst (value)
        THEN
!          (* Move constant or record field into a variable to achieve the include.  *)
!          t := MakeTemporary (tok, RightValue) ;
!          PutVar (t, GetSType(value)) ;
!          GenQuad (BecomesOp, t, NulSym, value) ;
           value := t
        END ;
!       GenQuad (InclOp, value, NulSym, el)
     END ;
     PushT(value)
  END BuildInclBit ;
*************** END BuildConstructorEnd ;
*** 12751,12774 ****
  
  
  (*
!    AddFieldTo - adds field, e, to, value.
  *)
  
! PROCEDURE AddFieldTo (value, e: CARDINAL) : CARDINAL ;
  BEGIN
!    IF IsSet(GetDType(value))
     THEN
!       PutConstSet(value) ;
!       PushT(value) ;
!       PushT(e) ;
        BuildInclBit ;
!       PopT(value)
     ELSE
!       PushValue(value) ;
!       AddField(GetTokenNo(), e) ;
!       PopValue(value)
     END ;
!    RETURN( value )
  END AddFieldTo ;
  
  
--- 12768,12792 ----
  
  
  (*
!    AddFieldTo - adds field to value.
  *)
  
! PROCEDURE AddFieldTo (value, field: CARDINAL;
!                       valuetok, fieldtok: CARDINAL) : CARDINAL ;
  BEGIN
!    IF IsSet (GetDType (value))
     THEN
!       PutConstSet (value) ;
!       PushTtok (value, valuetok) ;
!       PushTtok (field, fieldtok) ;
        BuildInclBit ;
!       PopT (value)
     ELSE
!       PushValue (value) ;
!       AddField (fieldtok, field) ;
!       PopValue (value)
     END ;
!    RETURN value
  END AddFieldTo ;
  
  
*************** END AddFieldTo ;
*** 12787,12792 ****
--- 12805,12814 ----
  
  PROCEDURE BuildComponentValue ;
  VAR
+    e1tok,
+    e2tok,
+    consttok,
+    virtpos  : CARDINAL ;
     const,
     e1, e2   : CARDINAL ;
     nuldotdot,
*************** BEGIN
*** 12796,12832 ****
     IF nulby=NulTok
     THEN
        PopT(nuldotdot) ;
!       IF nuldotdot=NulTok
        THEN
!          PopT(e1) ;
!          PopT(const) ;
!          PushT(AddFieldTo(const, e1))
        ELSE
!          PopT(e2) ;
!          PopT(e1) ;
!          PopT(const) ;
!          PushValue(const) ;
!          AddBitRange(GetTokenNo(), e1, e2) ;
!          PopValue(const) ;
!          PushT(const)
        END
     ELSE
!       PopT(e1) ;
!       PopT(nuldotdot) ;
!       IF nuldotdot=NulTok
        THEN
!          PopT(e2) ;
!          PopT(const) ;
!          PushValue(const) ;
!          AddElements(GetTokenNo(), e2, e1) ;
!          PopValue(const) ;
!          PushT(const)
        ELSE
!          PopT(e2) ;
!          PopT(e1) ;
!          PopT(const) ;
!          WriteFormat0('the constant must be either an array constructor or a set constructor') ;
!          PushT(const)
        END
     END
  END BuildComponentValue ;
--- 12818,12861 ----
     IF nulby=NulTok
     THEN
        PopT(nuldotdot) ;
!       IF nuldotdot = NulTok
        THEN
!          PopTtok (e1, e1tok) ;
!          PopTtok (const, consttok) ;
!          const := AddFieldTo (const, e1, consttok, e1tok) ;
!          PushTFrwtok (const, GetSType (const), NulSym,
!                       MakeVirtual2Tok (consttok, e1tok))
        ELSE
!          PopTtok (e2, e2tok) ;
!          PopTtok (e1, e1tok) ;
!          PopTtok (const, consttok) ;
!          PushValue (const) ;
!          AddBitRange (MakeVirtual2Tok (e1tok, e2tok), e1, e2) ;
!          PopValue (const) ;
!          PushTFrwtok (const, GetSType (const), NulSym,
!                       MakeVirtual2Tok (consttok, e2tok))
        END
     ELSE
!       PopTtok (e1, e1tok) ;
!       PopT (nuldotdot) ;
!       IF nuldotdot = NulTok
        THEN
!          PopTtok (e2, e2tok) ;
!          PopTtok (const, consttok) ;
!          PushValue (const) ;
!          AddElements (MakeVirtual2Tok (e1tok, e2tok), e2, e1) ;
!          PopValue (const) ;
!          PushTFrwtok (const, GetSType (const), NulSym,
!                       MakeVirtual2Tok (consttok, e2tok))
        ELSE
!          PopTtok (e2, e2tok) ;
!          PopTtok (e1, e1tok) ;
!          PopTtok (const, consttok) ;
!          consttok := MakeVirtual2Tok (consttok, e2tok) ;
!          MetaErrorT1 (consttok,
!                       'the constant {%E1a} must be either an array constructor or a set constructor',
!                       const) ;
!          PushTFrwtok (const, GetSType (const), NulSym, consttok)
        END
     END
  END BuildComponentValue ;
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2convert.cc gcc-16-20260419/gcc/m2/gm2-gcc/m2convert.cc
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2convert.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2convert.cc	Sun Apr 19 22:32:06 2026
*************** const_to_ISO_aggregate_type (location_t
*** 563,569 ****
        expr = m2expr_BuildDivFloor (location, expr,
                                     m2decl_BuildIntegerConstant (256), false);
      }
! 
    return m2type_BuildEndArrayConstructor (c);
  }
  
--- 563,571 ----
        expr = m2expr_BuildDivFloor (location, expr,
                                     m2decl_BuildIntegerConstant (256), false);
      }
!   /* Array contents must be in indice order.  */
!   if (BYTES_BIG_ENDIAN)
!     m2type_ReverseArrayConstructorElements (c);
    return m2type_BuildEndArrayConstructor (c);
  }
  
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2pp.cc gcc-16-20260419/gcc/m2/gm2-gcc/m2pp.cc
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2pp.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2pp.cc	Sun Apr 19 22:32:06 2026
*************** m2pp_decl_bool (pretty *s, tree t)
*** 334,339 ****
--- 334,352 ----
      m2pp_print (s, "in bind expr, ");
  }
  
+ /* Print statement stmt.  */
+ 
+ void
+ ps (tree stmt)
+ {
+   if (stmt)
+     {
+       pretty *state = initPretty (M2PP_DUMP_STDOUT, 0);
+       m2pp_statement (state, stmt);
+       killPretty (state);
+     }
+ }
+ 
  void
  pv (tree t)
  {
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2pp.h gcc-16-20260419/gcc/m2/gm2-gcc/m2pp.h
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2pp.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2pp.h	Sun Apr 19 22:32:06 2026
*************** EXTERN void m2pp_CloseDumpGimple (void);
*** 50,64 ****
  EXTERN void m2pp_DumpGimpleFd (int fd, tree fndecl);
  
  namespace modula2 {
! /* GDB Interactive interface to m2pp.  Allow a maintainer to dump
!    the trees in Modula-2.  */
  
! EXTERN void pf (tree t);
! EXTERN void pe (tree t);
! EXTERN void pt (tree t);
! EXTERN void ptl (tree t);
! EXTERN void pv (tree t);
! EXTERN void ptcl (tree t);
  }
  
  #   undef EXTERN
--- 50,72 ----
  EXTERN void m2pp_DumpGimpleFd (int fd, tree fndecl);
  
  namespace modula2 {
!   /* GDB Interactive interface to m2pp.  Allow a maintainer to dump
!      the trees in Modula-2.  */
  
!   /* pf print function in Modula-2 syntax.  */
!   EXTERN void pf (tree t);
!   /* pe print expression.  */  
!   EXTERN void pe (tree t);
!   /* pt print type.  */    
!   EXTERN void pt (tree t);
!   /* ptl print type with low level detail.  */
!   EXTERN void ptl (tree t);
!   /* pv print variable and type declaration.  */
!   EXTERN void pv (tree t);
!   /* ptcl print chained list.  */
!   EXTERN void ptcl (tree t);
!   /* Print statement stmt.  */
!   EXTERN void ps (tree stmt);
  }
  
  #   undef EXTERN
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2statement.cc gcc-16-20260419/gcc/m2/gm2-gcc/m2statement.cc
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2statement.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2statement.cc	Sun Apr 19 22:32:06 2026
*************** copy_strncpy (location_t location, tree
*** 214,232 ****
    add_stmt (location, result);
  }
  
! /* copy_memcpy copy right into left using builtin_memcpy.  */
  
- static
  void
! copy_memcpy (location_t location, tree left, tree right)
  {
    tree result = m2builtins_BuiltinMemCopy (location,
! 					   m2expr_BuildAddr (location, left, false),
! 					   m2expr_BuildAddr (location, right, false),
! 					   m2expr_GetSizeOf (location, left));
    TREE_SIDE_EFFECTS (result) = true;
!   TREE_USED (left) = true;
!   TREE_USED (right) = true;
    add_stmt (location, result);
  }
  
--- 214,232 ----
    add_stmt (location, result);
  }
  
! /* CopyMemcpy copy bytes from src into dest using builtin_memcpy.  */
  
  void
! m2statement_CopyMemcpy (location_t location, tree dest, tree src, tree bytes)
  {
+   tree addr_dest = m2expr_BuildAddr (location, dest, false);
    tree result = m2builtins_BuiltinMemCopy (location,
! 					   addr_dest,
! 					   m2expr_BuildAddr (location, src, false),
! 					   bytes);
    TREE_SIDE_EFFECTS (result) = true;
!   TREE_USED (dest) = true;
!   TREE_USED (src) = true;
    add_stmt (location, result);
  }
  
*************** CopyByField_Lower (location_t location,
*** 249,255 ****
    else if (left_code == ARRAY_TYPE && right_code == CONSTRUCTOR)
      copy_array (location, left, right);
    else if (left_code == UNION_TYPE && right_code == CONSTRUCTOR)
!     copy_memcpy (location, left, right);
    else if (right_code == STRING_CST)
      copy_strncpy (location, left, right);
    else
--- 249,256 ----
    else if (left_code == ARRAY_TYPE && right_code == CONSTRUCTOR)
      copy_array (location, left, right);
    else if (left_code == UNION_TYPE && right_code == CONSTRUCTOR)
!     m2statement_CopyMemcpy (location, left, right,
! 			    m2expr_GetSizeOf (location, left));
    else if (right_code == STRING_CST)
      copy_strncpy (location, left, right);
    else
*************** m2statement_CopyByField (location_t loca
*** 269,278 ****
      CopyByField_Lower (location, des, expr);
  }
  
! /* BuildAssignmentTree builds the assignment of, des, and, expr.
!    It returns, des.  */
  
! tree
  m2statement_BuildAssignmentTree (location_t location, tree des, tree expr)
  {
    tree result;
--- 270,279 ----
      CopyByField_Lower (location, des, expr);
  }
  
! /* BuildAssignmentTree builds the assignment of des and expr.
!    It returns des.  */
  
! void
  m2statement_BuildAssignmentTree (location_t location, tree des, tree expr)
  {
    tree result;
*************** m2statement_BuildAssignmentTree (locatio
*** 286,292 ****
    else
      {
        gcc_assert (TREE_CODE (TREE_TYPE (des)) != TYPE_DECL);
!       if (TREE_TYPE (expr) == TREE_TYPE (des))
          result = build2 (MODIFY_EXPR, TREE_TYPE (des), des, expr);
        else
          result = build2 (
--- 287,301 ----
    else
      {
        gcc_assert (TREE_CODE (TREE_TYPE (des)) != TYPE_DECL);
!       if ((TREE_CODE (expr) == CONSTRUCTOR)
! 	  && (TREE_CODE (TREE_TYPE (des)) == ARRAY_TYPE))
! 	{
! 	  m2statement_CopyMemcpy (location, des, expr,
! 				  m2expr_GetSizeOf (location,
! 						    m2type_GetTreeType (des)));
! 	  return;
! 	}
!       else if (TREE_TYPE (expr) == TREE_TYPE (des))
          result = build2 (MODIFY_EXPR, TREE_TYPE (des), des, expr);
        else
          result = build2 (
*************** m2statement_BuildAssignmentTree (locatio
*** 298,307 ****
    TREE_USED (des) = true;
    TREE_USED (expr) = true;
    add_stmt (location, result);
-   return des;
  }
  
! /* BuildAssignmentStatement builds the assignment of, des, and, expr.  */
  
  void
  m2statement_BuildAssignmentStatement (location_t location, tree des, tree expr)
--- 307,315 ----
    TREE_USED (des) = true;
    TREE_USED (expr) = true;
    add_stmt (location, result);
  }
  
! /* BuildAssignmentStatement builds the assignment of des and expr.  */
  
  void
  m2statement_BuildAssignmentStatement (location_t location, tree des, tree expr)
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2statement.def gcc-16-20260419/gcc/m2/gm2-gcc/m2statement.def
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2statement.def	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2statement.def	Sun Apr 19 22:32:06 2026
*************** PROCEDURE BuildPopFunctionContext ;
*** 72,85 ****
  
  
  (*
-    BuildAssignmentTree - builds the assignment of, des, and, expr.
-                          It returns, des.
- *)
- 
- PROCEDURE BuildAssignmentTree (location: location_t; des, expr: tree) : tree ;
- 
- 
- (*
     BuildAssignmentStatement builds the assignment of, des, and, expr.
  *)
  
--- 72,77 ----
*************** PROCEDURE CopyByField (location: locatio
*** 314,319 ****
--- 306,318 ----
  
  
  (*
+    CopyMemcpy - copy bytes from src into dest using builtin_memcpy.
+ *)
+ 
+ PROCEDURE CopyMemcpy (location: location_t; dest, src, bytes: tree) ;
+ 
+ 
+ (*
     IfBitInSetJump - if bit in set jump to label.
  *)
  
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2statement.h gcc-16-20260419/gcc/m2/gm2-gcc/m2statement.h
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2statement.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2statement.h	Sun Apr 19 22:32:06 2026
*************** EXTERN tree m2statement_BuildIfThenDoEnd
*** 71,77 ****
  
  EXTERN void m2statement_DeclareLabel (location_t location, char *name);
  EXTERN void m2statement_BuildGoto (location_t location, char *name);
! EXTERN tree m2statement_BuildAssignmentTree (location_t location, tree des,
                                               tree expr);
  EXTERN void m2statement_BuildAssignmentStatement (location_t location, tree des,
  						  tree expr);
--- 71,77 ----
  
  EXTERN void m2statement_DeclareLabel (location_t location, char *name);
  EXTERN void m2statement_BuildGoto (location_t location, char *name);
! EXTERN void m2statement_BuildAssignmentTree (location_t location, tree des,
                                               tree expr);
  EXTERN void m2statement_BuildAssignmentStatement (location_t location, tree des,
  						  tree expr);
*************** EXTERN tree m2statement_BuildCleanUp (tr
*** 106,111 ****
--- 106,112 ----
  EXTERN void m2statement_IfBitInSetJump (location_t location, bool invertCondition,
  					tree setvalue, tree bit, char *label);
  EXTERN void m2statement_CopyByField (location_t location, tree des, tree expr);
+ EXTERN void m2statement_CopyMemcpy (location_t location, tree dest, tree src, tree bytes);
  
  #undef EXTERN
  #endif /* m2statement_h.  */
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2type.cc gcc-16-20260419/gcc/m2/gm2-gcc/m2type.cc
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2type.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2type.cc	Sun Apr 19 22:32:06 2026
*************** m2type_BuildArrayConstructorElement (voi
*** 2477,2482 ****
--- 2477,2495 ----
    vec_safe_push (c->constructor_elements, celt);
  }
  
+ /* ReverseArrayConstructorElements reverse the list containing the
+    constant array elements.  */
+ 
+ void
+ m2type_ReverseArrayConstructorElements (void *p)
+ {
+   struct struct_constructor *c = (struct struct_constructor *)p;
+   unsigned len = vec_safe_length (c->constructor_elements);
+   constructor_elt *ptr = c->constructor_elements->address ();
+   for (unsigned i = 0; i < len / 2; i++)
+     std::swap (ptr[i], ptr[len - i - 1]);
+ }
+ 
  /* BuildArrayStringConstructor creates an array constructor for,
     arrayType, consisting of the character elements defined by, str,
     of, length, characters.  */
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2type.def gcc-16-20260419/gcc/m2/gm2-gcc/m2type.def
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2type.def	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2type.def	Sun Apr 19 22:32:06 2026
*************** PROCEDURE BuildEndArrayConstructor (p: C
*** 96,101 ****
--- 96,109 ----
  
  
  (*
+    ReverseArrayConstructorElements - reverse the list containing the
+                                      constant array elements.
+ *)
+ 
+ PROCEDURE ReverseArrayConstructorElements (p: Constructor) ;
+ 
+ 
+ (*
     BuildEndArrayConstructor - returns a tree containing the array
                                compound literal.
  *)
diff -Nrcpad gcc-16-20260412/gcc/m2/gm2-gcc/m2type.h gcc-16-20260419/gcc/m2/gm2-gcc/m2type.h
*** gcc-16-20260412/gcc/m2/gm2-gcc/m2type.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/m2/gm2-gcc/m2type.h	Sun Apr 19 22:32:06 2026
*************** EXTERN tree m2type_GetCardinalAddressTyp
*** 215,220 ****
--- 215,221 ----
  EXTERN bool m2type_SameRealType (tree a, tree b);
  EXTERN bool m2type_IsGccStrictTypeEquivalent (tree left, tree right);
  EXTERN tree m2type_GetBooleanEnumList (location_t location);
+ EXTERN void m2type_ReverseArrayConstructorElements (void *p);
  
  #undef EXTERN
  #endif /* m2type_h  */
diff -Nrcpad gcc-16-20260412/gcc/rust/ChangeLog gcc-16-20260419/gcc/rust/ChangeLog
*** gcc-16-20260412/gcc/rust/ChangeLog	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ChangeLog	Sun Apr 19 22:32:07 2026
***************
*** 1,3 ****
--- 1,505 ----
+ 2026-04-14  jayant chauhan  <0001jayant@gmail.com>
+ 
+ 	* backend/rust-compile-item.cc (CompileItem::visit): Do not insert
+ 	const_expr into the context if it is an error_mark_node.
+ 	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): Likewise.
+ 
+ 2026-04-14  AhmedSaid3617  <said.ahmed3617@gmail.com>
+ 
+ 	* ast/rust-item.h:(PathType::get_glob_type): Added const qualifier to allow
+ 	function call from const objects.
+ 	* resolve/rust-forever-stack.hxx:
+ 	(ForeverStack<N>::resolve_path): Check for empty segments vector and
+ 	return starting point.
+ 	* resolve/rust-toplevel-name-resolver-2.0.cc (flatten_glob): Preserve the
+ 	opening scope resolution property of the use statement.
+ 
+ 2026-04-14  Islam-Imad  <islamimad404@gmail.com>
+ 
+ 	* backend/rust-compile-expr.cc (CompileExpr::visit): set unit type.
+ 
+ 2026-04-14  Mohamed Ali  <mohmedali1462005@gmail.com>
+ 
+ 	* backend/rust-compile-intrinsic.cc: Register cttz and cttz_nonzero intrinsics.
+ 	* backend/rust-intrinsic-handlers.cc (cttz_handler): Implemnt cttz_handler.
+ 	(cttz_nonzero_handler): Implemnt cttz_nonzero_handler.
+ 	* backend/rust-intrinsic-handlers.h (cttz_handler): Add decl for cttz_handler.
+ 	(cttz_nonzero_handler): Add decl for cttz_handler.
+ 	* util/rust-intrinsic-values.h: map cttz_nonzero to its name.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* backend/rust-compile-asm.cc: Include "rust-ggc.h".
+ 	(chain_asm_operand): Use GGC::ChainList.
+ 	(CompileAsm::asm_construct_outputs): Likewise.
+ 	(CompileAsm::asm_construct_inputs): Likewise.
+ 	(CompileLlvmAsm::construct_operands): Likewise.
+ 	(CompileLlvmAsm::construct_clobbers): Likewise.
+ 	* util/rust-ggc.h (class ChainList): New class.
+ 
+ 2026-04-14  Philipp Gesang  <phg@phi-gamma.net>
+ 
+ 	* parse/rust-parse-impl.hxx: Refactor qualifier parsing
+ 	* parse/rust-parse.h: (parse_function_qualifiers) Likewise
+ 
+ 2026-04-14  Philipp Gesang  <phg@phi-gamma.net>
+ 
+ 	* parse/rust-parse-impl.hxx (parse_function_qualifiers)
+ 	Collect qualifiers into vector before generating the
+ 	error message
+ 	* parse/rust-parse.h: (parse_function_qualifiers) Make
+ 	function fallible
+ 
+ 2026-04-14  Kushal Pal  <kushalpal109@gmail.com>
+ 
+ 	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
+ 	Add error for functions with `default` qualifier outside of impl
+ 	blocks.
+ 	* parse/rust-parse-impl.hxx (Parser::parse_item):
+ 	Allow parsing of functions with `default` qualifier.
+ 	(Parser::parse_vis_item): Likewise.
+ 
+ 2026-04-14  Kushal Pal  <kushalpal109@gmail.com>
+ 
+ 	* ast/rust-ast-builder.cc (AstBuilder::fn_qualifiers):
+ 	Add new parameter.
+ 	* ast/rust-ast-builder.h: Likewise.
+ 	* ast/rust-ast.cc (Function::Function):
+ 	Remove current default parameter.
+ 	(Function::operator=):
+ 	Remove current default parameter.
+ 	* ast/rust-item.h (class FunctionQualifiers):
+ 	Add data member to represent defaultness of a function.
+ 	(class Function):
+ 	Remove current default parameter.
+ 	* parse/rust-parse-impl.hxx (Parser::parse_function_qualifiers):
+ 	Parse function qualifiers in order.
+ 	* util/rust-common.h (enum class): Create enum to represent
+ 	defaultness of a function.
+ 
+ 2026-04-14  Yap Zhi Heng  <yapzhhg@gmail.com>
+ 
+ 	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options):
+ 	Allow parsing of AttrInputMetaItemContainer.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* Make-lang.in: Add a new rust-attribute-checker file.
+ 	* checks/errors/rust-builtin-attribute-checker.h (check_valid_attribute_for_item):
+ 	Change BuiltinAttributeChecker doc comment.
+ 	* rust-session-manager.cc: Include the new rust-attribute-checker
+ 	header.
+ 	* util/rust-attributes.cc (AttributeChecker::AttributeChecker): Move to
+ 	rust-attribute-checker.cc.
+ 	(AttributeChecker::go): Likewise.
+ 	(is_proc_macro_type): Likewise.
+ 	(check_proc_macro_non_function): Likewise.
+ 	(check_proc_macro_non_root): Likewise.
+ 	(AttributeChecker::visit): Likewise.
+ 	* util/rust-attributes.h (class AttributeChecker): Move to
+ 	rust-attribute-checker.h.
+ 	* checks/errors/rust-attribute-checker.cc: New file.
+ 	* checks/errors/rust-attribute-checker.h: New file.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* checks/errors/rust-builtin-attribute-checker.cc (std::function<void):
+ 	Use the new attribute value variables instead of raw values.
+ 	* util/rust-attribute-values.h: Add deny, warn and forbid values.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* checks/errors/rust-builtin-attribute-checker.cc (check_doc_attribute):
+ 	Move from here...
+ 	(doc): ...to here.
+ 	(check_deprecated_attribute): Move from here...
+ 	(deprecated): ...to here.
+ 	(check_link_section_attribute): Move from here...
+ 	(link_section): ... to here.
+ 	(check_export_name_attribute): Move from here...
+ 	(export_name): ... to here.
+ 	(check_no_mangle_function): Remove internal structure checking and move
+ 	it to no_mangle handler.
+ 	(check_lint_attribute): Move from here...
+ 	(lint): ... to here.
+ 	(link_name): Likewise with link_name.
+ 	(check_crate_type): Move to anonymous namespace within the handler
+ 	namespace.
+ 	(proc_macro_derive): Add proc macro specific handler.
+ 	(proc_macro): Likewise.
+ 	(target_feature): Likewise.
+ 	(no_mangle): Add specific handler for no_mangler attribute internal
+ 	structure checking.
+ 	(std::function<void): Add map with attribute name to handler matching.
+ 	(tl::optional<std::function<void): Likewise.
+ 	(lookup_handler): Add an helper function to retrieve the handler of any
+ 	builtin attribute.
+ 	(BuiltinAttributeChecker::visit): Change attribute visitor call with
+ 	new handler call.
+ 	* checks/errors/rust-builtin-attribute-checker.h (check_valid_attribute_for_item):
+ 	Add prototype.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* checks/errors/rust-builtin-attribute-checker.cc (BuiltinAttributeChecker::visit):
+ 	Deduplicate lines using the new templated function within the visitor
+ 	functions.
+ 	* checks/errors/rust-builtin-attribute-checker.h (class BuiltinAttributeChecker):
+ 	Create a new templated function that achieves the default attribute
+ 	checking operations.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Flatten
+ 	AttrInputExpr containing a literal to an AttrInputLiteral.
+ 	* expand/rust-expand-visitor.h: Add function prototype.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* ast/rust-ast.h: Add helper to set a new attribute input.
+ 	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
+ 	Visit builtin attributes.
+ 	(ExpandVisitor::visit): Likewise.
+ 	* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Expand
+ 	attribute input expr.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* Make-lang.in: Add file for builtin attribute checking.
+ 	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_doc_item_attribute):
+ 	Remove error emission and replace it with an assert. The error message
+ 	will now be emitted from the builtin attribute checking pass.
+ 	* rust-session-manager.cc (Session::compile_crate): Add builtin
+ 	attribute checking step after expansion.
+ 	* util/rust-attributes.cc (Attributes::is_known): Move down.
+ 	(Attributes::extract_string_literal): Likewise.
+ 	(Attributes::valid_outer_attribute): Add a function to retrieve outer/
+ 	inner status for a given builtin attribute value.
+ 	(AttributeChecker::visit): Move some checking to builtin attribute
+ 	checker.
+ 	(identify_builtin): Rename function from here ...
+ 	(lookup_builtin): ... to here.
+ 	(check_doc_alias): Move to builtin attribute checker.
+ 	(check_doc_attribute): Likewise.
+ 	(check_deprecated_attribute): Likewise.
+ 	(check_valid_attribute_for_item): Likewise.
+ 	(AttributeChecker::check_inner_attribute): Likewise.
+ 	(check_link_section_attribute): Likewise.
+ 	(check_export_name_attribute): Likewise.
+ 	(check_lint_attribute): Likewise.
+ 	(check_no_mangle_function): Likewise.
+ 	(is_proc_macro_type): Update function call name.
+ 	* util/rust-attributes.h (identify_builtin): Update prototype.
+ 	(lookup_builtin): Likewise.
+ 	* checks/errors/rust-builtin-attribute-checker.cc: New file.
+ 	* checks/errors/rust-builtin-attribute-checker.h: New file.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* ast/rust-ast-collector.cc (TokenCollector::visit): Remove
+ 	AttrInputMacro handling.
+ 	* ast/rust-ast-collector.h: Remove function prototype.
+ 	* ast/rust-ast-full-decls.h (class AttrInputMacro): Remove forward
+ 	declaration.
+ 	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Remove function.
+ 	* ast/rust-ast-visitor.h: Remove function prototypes.
+ 	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Remove handling of
+ 	macros.
+ 	(AttrInputMacro::as_string): Remove function.
+ 	(AttrInputMacro::AttrInputMacro): Likewise.
+ 	(AttrInputMacro::operator=): Likewise.
+ 	(AttrInputMacro::accept_vis): Likewise.
+ 	* ast/rust-ast.h: Remove MACRO kind.
+ 	* ast/rust-expr.h (class AttrInputMacro): Add getter for expr pointer.
+ 	Remove AttrInputMacro class.
+ 	* expand/rust-derive.h: Remove function prototype.
+ 	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change function
+ 	to AttrInputExpr.
+ 	* expand/rust-expand-visitor.h: Update prototype.
+ 	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Remove function.
+ 	* hir/rust-ast-lower-base.h: Remove function prototype.
+ 	* parse/rust-parse-impl-attribute.hxx: Parse the attribute content as
+ 	AttrInputExpr instead.
+ 	* util/rust-attributes.cc (check_doc_attribute): Remove MACRO kind
+ 	handling.
+ 	(check_export_name_attribute): Remove switch and only handle literals.
+ 	(AttributeChecker::visit): Remove function.
+ 	* util/rust-attributes.h: Remove function prototype.
+ 
+ 2026-04-14  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>
+ 
+ 	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): added
+ 	refutable pattern checks for function params.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* Make-lang.in (GRS_OBJS): Add rust-identifier-path.o.
+ 	* resolve/rust-early-name-resolver-2.0.cc: Include
+ 	"rust-identifier-path.h".
+ 	(Early::go): Use IdentifierPathPass.
+ 	(Early::visit): Handle identifier patterns which should be path
+ 	patterns.
+ 	* resolve/rust-early-name-resolver-2.0.h: Include
+ 	"rust-pattern.h".
+ 	(Early::visit): Add visiting function declaration for
+ 	IdentifierPattern.
+ 	(Early::ident_path_to_convert): New member variable.
+ 	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
+ 	Call Mappings::add_function_node.
+ 	* util/rust-hir-map.cc (Mappings::add_function_node): New
+ 	member function definition.
+ 	(Mappings::is_function_node): Likewise.
+ 	* util/rust-hir-map.h (Mappings::add_function_node): New
+ 	member function declaration.
+ 	(Mappings::is_function_node): Likewise.
+ 	(Mappings::function_nodes): New member variable.
+ 	* resolve/rust-identifier-path.cc: New file.
+ 	* resolve/rust-identifier-path.h: New file.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* ast/rust-ast-pointer-visitor.cc (PointerVisitor::visit): Remove
+ 	duplicated functions.
+ 	* ast/rust-ast-pointer-visitor.h: Remove duplicated function
+ 	prototypes.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* expand/rust-macro-expand.cc (MacroExpander::expand_crate):
+ 	Remove usage of Resolver::get_macro_scope.
+ 	* resolve/rust-name-resolver.cc (Resolver::Resolver): Handle
+ 	removal of member variables.
+ 	(Resolver::push_new_name_rib): Remove function definition.
+ 	(Resolver::push_new_type_rib): Likewise.
+ 	(Resolver::push_new_label_rib): Likewise.
+ 	(Resolver::push_new_macro_rib): Likewise.
+ 	(Resolver::find_name_rib): Likewise.
+ 	(Resolver::find_type_rib): Likewise.
+ 	(Resolver::find_macro_rib): Likewise.
+ 	(Resolver::insert_builtin_types): Likewise.
+ 	(Resolver::get_builtin_types): Likewise.
+ 	(Resolver::generate_builtins): Likewise.
+ 	(Resolver::setup_builtin): Likewise.
+ 	(Resolver::insert_resolved_label): Likewise.
+ 	(Resolver::lookup_resolved_label): Likewise.
+ 	(Resolver::insert_resolved_macro): Likewise.
+ 	(Resolver::lookup_resolved_macro): Likewise.
+ 	(Resolver::push_closure_context): Likewise.
+ 	(Resolver::pop_closure_context): Likewise.
+ 	(Resolver::insert_captured_item): Likewise.
+ 	(Resolver::decl_needs_capture): Likewise.
+ 	(Resolver::get_captures): Likewise.
+ 	(Resolver::insert_resolved_name): Replace function
+ 	implementation with rust_unreachable call.
+ 	(Resolver::lookup_resolved_name): Likewise.
+ 	(Resolver::insert_resolved_type): Likewise.
+ 	(Resolver::lookup_resolved_type): Likewise.
+ 	(Resolver::insert_resolved_misc): Likewise.
+ 	(Resolver::lookup_resolved_misc): Likewise.
+ 	* resolve/rust-name-resolver.h (Resolver::insert_builtin_types):
+ 	Remove member function declaration.
+ 	(Resolver::get_builtin_types): Likewise.
+ 	(Resolver::push_new_name_rib): Likewise.
+ 	(Resolver::push_new_type_rib): Likewise.
+ 	(Resolver::push_new_label_rib): Likewise.
+ 	(Resolver::push_new_macro_rib): Likewise.
+ 	(Resolver::find_name_rib): Likewise.
+ 	(Resolver::find_type_rib): Likewise.
+ 	(Resolver::find_label_rib): Likewise.
+ 	(Resolver::find_macro_rib): Likewise.
+ 	(Resolver::insert_resolved_label): Likewise.
+ 	(Resolver::lookup_resolved_label): Likewise.
+ 	(Resolver::insert_resolved_macro): Likewise.
+ 	(Resolver::lookup_resolved_macro): Likewise.
+ 	(Resolver::get_name_scope): Likewise.
+ 	(Resolver::get_type_scope): Likewise.
+ 	(Resolver::get_label_scope): Likewise.
+ 	(Resolver::get_macro_scope): Likewise.
+ 	(Resolver::get_global_type_node_id): Likewise.
+ 	(Resolver::set_unit_type_node_id): Likewise.
+ 	(Resolver::get_unit_type_node_id): Likewise.
+ 	(Resolver::set_never_type_node_id): Likewise.
+ 	(Resolver::get_never_type_node_id): Likewise.
+ 	(Resolver::push_new_module_scope): Likewise.
+ 	(Resolver::pop_module_scope): Likewise.
+ 	(Resolver::peek_current_module_scope): Likewise.
+ 	(Resolver::peek_crate_module_scope): Likewise.
+ 	(Resolver::peek_parent_module_scope): Likewise.
+ 	(Resolver::push_closure_context): Likewise.
+ 	(Resolver::pop_closure_context): Likewise.
+ 	(Resolver::insert_captured_item): Likewise.
+ 	(Resolver::get_captures): Likewise.
+ 	(Resolver::as_debug_string): Likewise.
+ 	(Resolver::decl_needs_capture): Likewise.
+ 	(Resolver::generate_builtins): Likewise.
+ 	(Resolver::setup_builtin): Likewise.
+ 	(Resolver::mappings): Remove member variable.
+ 	(Resolver::tyctx): Likewise.
+ 	(Resolver::builtins): Likewise.
+ 	(Resolver::name_scope): Likewise.
+ 	(Resolver::type_scope): Likewise.
+ 	(Resolver::label_scope): Likewise.
+ 	(Resolver::macro_scope): Likewise.
+ 	(Resolver::global_type_node_id): Likewise.
+ 	(Resolver::unit_ty_node_id): Likewise.
+ 	(Resolver::never_ty_node_id): Likewise.
+ 	(Resolver::name_ribs): Likewise.
+ 	(Resolver::type_ribs): Likewise.
+ 	(Resolver::label_ribs): Likewise.
+ 	(Resolver::macro_ribs): Likewise.
+ 	(Resolver::resolved_names): Likewise.
+ 	(Resolver::resolved_types): Likewise.
+ 	(Resolver::resolved_labels): Likewise.
+ 	(Resolver::resolved_macros): Likewise.
+ 	(Resolver::misc_resolved_items): Likewise.
+ 	(Resolver::current_module_stack): Likewise.
+ 	(Resolver::closure_context): Likewise.
+ 	(Resolver::closures_capture_mappings): Likewise.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* checks/errors/rust-const-checker.cc: Remove inclusion of
+ 	"options.h".
+ 	(ConstChecker::ConstChecker): Initialize 2.0 resolver.
+ 	(ConstChecker::visit): Assume nr2.0 is enabled.
+ 	* checks/errors/rust-const-checker.h: Adjust includes.
+ 	(ConstChecker::resolver): Change type to 2.0 resolver.
+ 	* checks/errors/rust-unsafe-checker.cc: Remove inclusion of
+ 	"options.h".
+ 	(UnsafeChecker::UnsafeChecker): Initialize 2.0 resolver.
+ 	(UnsafeChecker::visit): Assume nr2.0 is enabled.
+ 	* checks/errors/rust-unsafe-checker.h: Adjust includes.
+ 	(UnsafeChecker::resolver): Change type to 2.0 resolver.
+ 	* checks/lints/rust-lint-marklive.cc
+ 	(MarkLive::visit_path_segment): Assume nr2.0 is enabled.
+ 	(MarkLive::visit): Likewise.
+ 	(MarkLive::find_ref_node_id): Likewise.
+ 	* checks/lints/rust-lint-marklive.h: Include
+ 	"rust-immutable-name-resolution-context.h".
+ 	(MarkLive::resolver): Change type to 2.0 resolver, as a
+ 	reference instead of a pointer.
+ 	(MarkLive::MarkLive): Initialize 2.0 resolver.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Remove
+ 	some redundant function overloads.
+ 	* expand/rust-expand-visitor.h (ExpandVisitor::visit): Likewise.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* util/rust-attribute-values.h: Add "no_builtins"
+ 	attribute value.
+ 	* util/rust-attributes.cc: Add "no_builtins" to
+ 	the list of builtin attributes.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit):
+ 	Rework visit to avoid multiple iterations. Add check for
+ 	"compiler_builtins" attribute.
+ 	(FeatureGate::check_no_core_attribute): Remove loop.
+ 	* checks/errors/feature/rust-feature-gate.h: Update function prototype.
+ 	* util/rust-attribute-values.h: Add "compiler_builtins" attribute
+ 	value.
+ 	* util/rust-attributes.cc: Add "compiler_builtins" to the list of
+ 	builtin attributes.
+ 
+ 2026-04-14  Mohamed Ali  <mohmedali1462005@gmail.com>
+ 
+ 	* backend/rust-compile-intrinsic.cc: Register ctlz and ctlz_nonzero intrinsics.
+ 	* backend/rust-intrinsic-handlers.cc (ctlz_handler): Implement ctlz_handler.
+ 	(ctlz_nonzero_handler): Implement ctlz_nonzero_handler.
+ 	* backend/rust-intrinsic-handlers.h (ctlz_handler): Add decl for ctlz_handler.
+ 	(ctlz_nonzero_handler): Add decl for ctlz_nonzero_handler.
+ 	* util/rust-intrinsic-values.h: map ctlz_nonzero to its name.
+ 
+ 2026-04-14  Enes Cevik  <nsvke@proton.me>
+ 
+ 	* lex/rust-lex.cc (Lexer::parse_non_decimal_int_literal): Use GMP
+ 	for base conversion to support 128-bit literals. Remove existent_str
+ 	parameter.
+ 	(Lexer::parse_non_decimal_int_literals): Remove prefix string
+ 	initialization and update function calls.
+ 	* lex/rust-lex.h (Lexer::parse_non_decimal_int_literal): Update
+ 	function signature to remove existent_str.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* checks/errors/rust-hir-pattern-analysis.cc
+ 	(PlaceInfo::specialize): Handle VariantType::UNIT.
+ 	(WitnessPat::to_string): Likewise.
+ 	(WitnessMatrix::apply_constructor): Likewise.
+ 	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
+ 	Conditionally create VariantType::UNIT variants.
+ 	* typecheck/rust-hir-type-check-pattern.cc
+ 	(TypeCheckPattern::visit): Fix typo, handle VariantType::UNIT.
+ 	* typecheck/rust-tyty-variance-analysis.cc
+ 	(GenericTyVisitorCtx::process_type): Handle VariantType::UNIT.
+ 	* typecheck/rust-tyty.cc (BaseType::contains_infer): Likewise.
+ 	(BaseType::is_concrete): Likewise.
+ 	(VariantDef::variant_type_string): Likewise.
+ 	(VariantDef::VariantDef): Likewise.
+ 	* typecheck/rust-tyty.h (VariantDef::VariantType::UNIT): New
+ 	enumerator.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* resolve/rust-finalize-imports-2.0.cc
+ 	(GlobbingVisitor::visit_enum_container): Conditionally insert
+ 	into value namespace as well.
+ 	* resolve/rust-forever-stack.hxx (ForeverStack::insert_variant):
+ 	Add template specialization for value namespace.
+ 	* resolve/rust-name-resolution-context.cc
+ 	(NameResolutionContext::insert_variant): Allow insertion into
+ 	value namespace.
+ 	* resolve/rust-name-resolution-context.h
+ 	(NameResolutionContext::insert_variant): Likewise.
+ 	* resolve/rust-toplevel-name-resolver-2.0.cc
+ 	(TopLevel::insert_enum_variant_or_error_out): Likewise.
+ 	(TopLevel::visit): Use tweaked insert_enum_variant_or_error_out
+ 	properly for all enum item kinds.
+ 	* resolve/rust-toplevel-name-resolver-2.0.h
+ 	(TopLevel::insert_enum_variant_or_error_out): Tweak function
+ 	signature.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* typecheck/rust-hir-type-check-pattern.cc
+ 	(TypeCheckPattern::visit): Fix typo "constatnt".
+ 
+ 2026-04-14  hriztam  <hritamstark05@gmail.com>
+ 
+ 	* ast/rust-fmt.h: Explicitly instantiate FFIVec<Piece>.
+ 
+ 2026-04-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* typecheck/rust-tyty.cc (generate_tree_str): Remove opem_memstream
+ 	and print_generic_stmt call with call to dump_generic_node.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* resolve/rust-forever-stack.h: Include more headers.
+ 	(class ResolutionPath): New class for representing paths.
+ 	(ForeverStack::resolve_path): Change function signature.
+ 	(ForeverStack::find_starting_point): Likewise.
+ 	(ForeverStack::resolve_segments): Likewise.
+ 	(ForeverStack::SegIterator): Change type alias.
+ 	* resolve/rust-forever-stack.hxx (check_leading_kw_at_start):
+ 	Change function signature.
+ 	(ForeverStack::find_starting_point): Likewise.
+ 	(ForeverStack::resolve_segments): Likewise.
+ 	(ForeverStack::resolve_path): Likewise.
+ 	* resolve/rust-name-resolution-context.h: Tweak include guard,
+ 	include "rust-name-resolution.h".
+ 	(NameResolutionContext::resolve_path): Use ResolutionPath and
+ 	ResolutionBuilder.
+ 	(class NameResolutionContext::ResolutionBuilder): New class.
+ 	(class Usage): Move this...
+ 	(class Definition): ...and this...
+ 	* resolve/rust-name-resolution.h: ...to new file.
+ 	* util/rust-unwrap-segment.h: Add include guard.
+ 
  2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
  
  	* rust-session-manager.cc (Session::compile_crate): Use additional
diff -Nrcpad gcc-16-20260412/gcc/rust/Make-lang.in gcc-16-20260419/gcc/rust/Make-lang.in
*** gcc-16-20260412/gcc/rust/Make-lang.in	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/Make-lang.in	Sun Apr 19 22:32:07 2026
*************** GRS_OBJS = \
*** 126,131 ****
--- 126,133 ----
      rust/rust-hir.o \
      rust/rust-hir-map.o \
      rust/rust-attributes.o \
+     rust/rust-attribute-checker.o \
+     rust/rust-builtin-attribute-checker.o \
      rust/rust-keyword-values.o \
      rust/rust-abi.o \
      rust/rust-token-converter.o \
*************** GRS_OBJS = \
*** 146,151 ****
--- 148,154 ----
  	rust/rust-finalize-imports-2.0.o \
  	rust/rust-ice-finalizer.o \
      rust/rust-late-name-resolver-2.0.o \
+     rust/rust-identifier-path.o \
  	rust/rust-immutable-name-resolution-context.o \
      rust/rust-name-resolver.o \
      rust/rust-resolve-builtins.o \
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-builder.cc gcc-16-20260419/gcc/rust/ast/rust-ast-builder.cc
*** gcc-16-20260412/gcc/rust/ast/rust-ast-builder.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-builder.cc	Sun Apr 19 22:32:07 2026
*************** Builder::function_param (std::unique_ptr
*** 149,155 ****
  FunctionQualifiers
  Builder::fn_qualifiers () const
  {
!   return FunctionQualifiers (loc, Async::No, Const::No, Unsafety::Normal);
  }
  
  std::unique_ptr<Function>
--- 149,156 ----
  FunctionQualifiers
  Builder::fn_qualifiers () const
  {
!   return FunctionQualifiers (loc, Default::No, Async::No, Const::No,
! 			     Unsafety::Normal);
  }
  
  std::unique_ptr<Function>
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-builder.h gcc-16-20260419/gcc/rust/ast/rust-ast-builder.h
*** gcc-16-20260412/gcc/rust/ast/rust-ast-builder.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-builder.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 188,195 ****
  	    std::unique_ptr<Type> return_type, std::unique_ptr<BlockExpr> block,
  	    std::vector<std::unique_ptr<GenericParam>> generic_params = {},
  	    FunctionQualifiers qualifiers
! 	    = FunctionQualifiers (UNKNOWN_LOCATION, Async::No, Const::No,
! 				  Unsafety::Normal),
  	    WhereClause where_clause = WhereClause::create_empty (),
  	    Visibility visibility = Visibility::create_private ()) const;
  
--- 188,195 ----
  	    std::unique_ptr<Type> return_type, std::unique_ptr<BlockExpr> block,
  	    std::vector<std::unique_ptr<GenericParam>> generic_params = {},
  	    FunctionQualifiers qualifiers
! 	    = FunctionQualifiers (UNKNOWN_LOCATION, Default::No, Async::No,
! 				  Const::No, Unsafety::Normal),
  	    WhereClause where_clause = WhereClause::create_empty (),
  	    Visibility visibility = Visibility::create_private ()) const;
  
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-collector.cc gcc-16-20260419/gcc/rust/ast/rust-ast-collector.cc
*** gcc-16-20260412/gcc/rust/ast/rust-ast-collector.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-collector.cc	Sun Apr 19 22:32:07 2026
*************** TokenCollector::visit (Attribute &attrib
*** 176,186 ****
  		static_cast<AttrInputLiteral &> (attrib.get_attr_input ()));
  	      break;
  	    }
- 	  case AST::AttrInput::AttrInputType::MACRO:
- 	    {
- 	      visit (static_cast<AttrInputMacro &> (attrib.get_attr_input ()));
- 	      break;
- 	    }
  	  case AST::AttrInput::AttrInputType::EXPR:
  	    {
  	      visit (static_cast<AttrInputExpr &> (attrib.get_attr_input ()));
--- 176,181 ----
*************** TokenCollector::visit (AttrInputLiteral
*** 903,917 ****
    });
  }
  
- void
- TokenCollector::visit (AttrInputMacro &macro)
- {
-   describe_node (std::string ("AttrInputMacro"), [this, &macro] () {
-     push (Rust::Token::make (EQUAL, UNDEF_LOCATION));
-     visit (macro.get_macro ());
-   });
- }
- 
  void
  TokenCollector::visit (AttrInputExpr &attr)
  {
--- 898,903 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-collector.h gcc-16-20260419/gcc/rust/ast/rust-ast-collector.h
*** gcc-16-20260412/gcc/rust/ast/rust-ast-collector.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-collector.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 291,297 ****
    // rust-expr.h
    void visit (LiteralExpr &expr);
    void visit (AttrInputLiteral &attr_input);
-   void visit (AttrInputMacro &attr_input);
    void visit (AttrInputExpr &attr_input);
    void visit (MetaItemLitExpr &meta_item);
    void visit (MetaItemPathExpr &meta_item);
--- 291,296 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-full-decls.h gcc-16-20260419/gcc/rust/ast/rust-ast-full-decls.h
*** gcc-16-20260412/gcc/rust/ast/rust-ast-full-decls.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-full-decls.h	Sun Apr 19 22:32:07 2026
*************** class QualifiedPathInType;
*** 77,83 ****
  class ExprWithBlock;
  class LiteralExpr;
  class AttrInputLiteral;
- class AttrInputMacro;
  class MetaItemLitExpr;
  class MetaItemPathExpr;
  class OperatorExpr;
--- 77,82 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-pointer-visitor.cc gcc-16-20260419/gcc/rust/ast/rust-ast-pointer-visitor.cc
*** gcc-16-20260412/gcc/rust/ast/rust-ast-pointer-visitor.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-pointer-visitor.cc	Sun Apr 19 22:32:07 2026
*************** PointerVisitor::visit (AST::QualifiedPat
*** 155,201 ****
  }
  
  void
- PointerVisitor::visit (AST::QualifiedPathInType &path)
- {
-   visit (path.get_qualified_path_type ());
-   visit (path.get_associated_segment ());
- 
-   for (auto &segment : path.get_segments ())
-     visit (segment);
- }
- 
- void
- PointerVisitor::visit (AST::LiteralExpr &expr)
- {
-   visit_outer_attrs (expr);
- }
- 
- void
- PointerVisitor::visit (AST::AttrInputLiteral &attr_input)
- {
-   visit (attr_input.get_literal ());
- }
- 
- void
- PointerVisitor::visit (AST::AttrInputMacro &attr_input)
- {
-   visit (attr_input.get_macro ());
- }
- 
- void
- PointerVisitor::visit (AST::MetaItemLitExpr &meta_item)
- {
-   visit (meta_item.get_literal ());
- }
- 
- void
- PointerVisitor::visit (AST::SimplePath &path)
- {
-   for (auto &segment : path.get_segments ())
-     visit (segment);
- }
- 
- void
  PointerVisitor::visit (AST::MetaItemPathExpr &meta_item)
  {
    visit (meta_item.get_path ());
--- 155,160 ----
*************** PointerVisitor::visit (AST::TupleIndexEx
*** 333,350 ****
  }
  
  void
- PointerVisitor::visit (AST::StructExprStruct &expr)
- {
-   visit_outer_attrs (expr);
-   visit_inner_attrs (expr);
-   visit (expr.get_struct_name ());
- }
- 
- void
- PointerVisitor::visit (AST::StructExprFieldIdentifier &field)
- {}
- 
- void
  PointerVisitor::visit (AST::StructExprFieldIdentifierValue &field)
  {
    reseat (field.get_value_ptr ());
--- 292,297 ----
*************** PointerVisitor::visit (AST::StructBase &
*** 363,389 ****
  }
  
  void
- PointerVisitor::visit (AST::StructExprStructFields &expr)
- {
-   visit_outer_attrs (expr);
-   visit_inner_attrs (expr);
-   visit (expr.get_struct_name ());
-   if (expr.has_struct_base ())
-     visit (expr.get_struct_base ());
-   for (auto &field : expr.get_fields ())
-     visit (field);
- }
- 
- void
- PointerVisitor::visit (AST::StructExprStructBase &expr)
- {
-   visit_outer_attrs (expr);
-   visit_inner_attrs (expr);
-   visit (expr.get_struct_name ());
-   visit (expr.get_struct_base ());
- }
- 
- void
  PointerVisitor::visit (AST::CallExpr &expr)
  {
    visit_outer_attrs (expr);
--- 310,315 ----
*************** PointerVisitor::visit (AST::BlockExpr &e
*** 439,450 ****
  }
  
  void
- PointerVisitor::visit (AST::ConstBlock &expr)
- {
-   visit (expr.get_const_expr ());
- }
- 
- void
  PointerVisitor::visit (AST::AnonConst &expr)
  {
    if (!expr.is_deferred ())
--- 365,370 ----
*************** PointerVisitor::visit (AST::RangeToExpr
*** 513,522 ****
  }
  
  void
- PointerVisitor::visit (AST::RangeFullExpr &expr)
- {}
- 
- void
  PointerVisitor::visit (AST::RangeFromToInclExpr &expr)
  {
    reseat (expr.get_from_expr_ptr ());
--- 433,438 ----
*************** PointerVisitor::visit (AST::UnsafeBlockE
*** 559,570 ****
  }
  
  void
- PointerVisitor::visit (AST::LoopLabel &label)
- {
-   visit (label.get_lifetime ());
- }
- 
- void
  PointerVisitor::visit (AST::LoopExpr &expr)
  {
    visit_outer_attrs (expr);
--- 475,480 ----
*************** PointerVisitor::visit (AST::IfExpr &expr
*** 616,628 ****
  }
  
  void
- PointerVisitor::visit (AST::IfExprConseqElse &expr)
- {
-   visit (reinterpret_cast<AST::IfExpr &> (expr));
-   visit (expr.get_else_block ());
- }
- 
- void
  PointerVisitor::visit (AST::IfLetExpr &expr)
  {
    visit_outer_attrs (expr);
--- 526,531 ----
*************** PointerVisitor::visit (AST::IfLetExpr &e
*** 632,644 ****
  }
  
  void
- PointerVisitor::visit (AST::IfLetExprConseqElse &expr)
- {
-   visit (reinterpret_cast<AST::IfLetExpr &> (expr));
-   visit (expr.get_else_block ());
- }
- 
- void
  PointerVisitor::visit (AST::MatchArm &arm)
  {
    visit_outer_attrs (arm);
--- 535,540 ----
*************** PointerVisitor::visit (AST::TypeParam &p
*** 750,763 ****
  }
  
  void
- PointerVisitor::visit (AST::LifetimeWhereClauseItem &item)
- {
-   visit (item.get_lifetime ());
-   for (auto &bound : item.get_lifetime_bounds ())
-     visit (bound);
- }
- 
- void
  PointerVisitor::visit (AST::TypeBoundWhereClauseItem &item)
  {
    for (auto &lifetime : item.get_for_lifetimes ())
--- 646,651 ----
*************** PointerVisitor::visit (AST::TypeBoundWhe
*** 769,788 ****
  }
  
  void
- PointerVisitor::visit (AST::Visibility &vis)
- {
-   if (vis.has_path ())
-     visit (vis.get_path ());
- }
- 
- void
- PointerVisitor::visit (AST::WhereClause &where)
- {
-   for (auto &item : where.get_items ())
-     visit (item);
- }
- 
- void
  PointerVisitor::visit (AST::FunctionParam &param)
  {
    visit_outer_attrs (param);
--- 657,662 ----
*************** PointerVisitor::visit (AST::Module &modu
*** 815,852 ****
  }
  
  void
- PointerVisitor::visit (AST::ExternCrate &crate)
- {
-   visit_outer_attrs (crate);
-   visit (crate.get_visibility ());
- }
- 
- void
- PointerVisitor::visit (AST::UseTreeGlob &use_tree)
- {
-   visit (use_tree.get_path ());
- }
- 
- void
- PointerVisitor::visit (AST::UseTreeList &use_tree)
- {
-   visit (use_tree.get_path ());
- }
- 
- void
- PointerVisitor::visit (AST::UseTreeRebind &use_tree)
- {
-   visit (use_tree.get_path ());
- }
- 
- void
- PointerVisitor::visit (AST::UseDeclaration &use_decl)
- {
-   visit (use_decl.get_visibility ());
-   visit (use_decl.get_tree ());
- }
- 
- void
  PointerVisitor::visit_function_params (AST::Function &function)
  {
    for (auto &param : function.get_function_params ())
--- 689,694 ----
*************** PointerVisitor::visit (AST::StructField
*** 893,911 ****
  }
  
  void
- PointerVisitor::visit (AST::StructStruct &struct_item)
- {
-   visit_outer_attrs (struct_item);
-   visit (struct_item.get_visibility ());
-   for (auto &generic : struct_item.get_generic_params ())
-     visit (generic);
-   if (struct_item.has_where_clause ())
-     visit (struct_item.get_where_clause ());
-   for (auto &field : struct_item.get_fields ())
-     visit (field);
- }
- 
- void
  PointerVisitor::visit (AST::TupleField &field)
  {
    visit_outer_attrs (field);
--- 735,740 ----
*************** PointerVisitor::visit (AST::TupleField &
*** 914,955 ****
  }
  
  void
- PointerVisitor::visit (AST::TupleStruct &tuple_struct)
- {
-   visit_outer_attrs (tuple_struct);
-   visit (tuple_struct.get_visibility ());
-   for (auto &generic : tuple_struct.get_generic_params ())
-     visit (generic);
-   if (tuple_struct.has_where_clause ())
-     visit (tuple_struct.get_where_clause ());
-   for (auto &field : tuple_struct.get_fields ())
-     visit (field);
- }
- 
- void
- PointerVisitor::visit (AST::EnumItem &item)
- {
-   visit_outer_attrs (item);
-   visit (item.get_visibility ());
- }
- 
- void
- PointerVisitor::visit (AST::EnumItemTuple &item)
- {
-   PointerVisitor::visit (static_cast<EnumItem &> (item));
-   for (auto &field : item.get_tuple_fields ())
-     visit (field);
- }
- 
- void
- PointerVisitor::visit (AST::EnumItemStruct &item)
- {
-   PointerVisitor::visit (static_cast<EnumItem &> (item));
-   for (auto &field : item.get_struct_fields ())
-     visit (field);
- }
- 
- void
  PointerVisitor::visit (AST::EnumItemDiscriminant &item)
  {
    PointerVisitor::visit (static_cast<EnumItem &> (item));
--- 743,748 ----
*************** PointerVisitor::visit (AST::EnumItemDisc
*** 957,988 ****
  }
  
  void
- PointerVisitor::visit (AST::Enum &enum_item)
- {
-   visit_outer_attrs (enum_item);
-   visit (enum_item.get_visibility ());
-   for (auto &generic : enum_item.get_generic_params ())
-     visit (generic);
-   if (enum_item.has_where_clause ())
-     visit (enum_item.get_where_clause ());
-   for (auto &item : enum_item.get_variants ())
-     visit (item);
- }
- 
- void
- PointerVisitor::visit (AST::Union &union_item)
- {
-   visit_outer_attrs (union_item);
-   visit (union_item.get_visibility ());
-   for (auto &generic : union_item.get_generic_params ())
-     visit (generic);
-   if (union_item.has_where_clause ())
-     visit (union_item.get_where_clause ());
-   for (auto &variant : union_item.get_variants ())
-     visit (variant);
- }
- 
- void
  PointerVisitor::visit (AST::ConstantItem &const_item)
  {
    visit_outer_attrs (const_item);
--- 750,755 ----
*************** PointerVisitor::visit (AST::StaticItem &
*** 1002,1015 ****
  }
  
  void
- PointerVisitor::visit (AST::TraitItemType &item)
- {
-   visit_outer_attrs (item);
-   for (auto &bound : item.get_type_param_bounds ())
-     visit (bound);
- }
- 
- void
  PointerVisitor::visit (AST::Trait &trait)
  {
    visit_outer_attrs (trait);
--- 769,774 ----
*************** PointerVisitor::visit (AST::TraitImpl &i
*** 1066,1078 ****
  }
  
  void
- PointerVisitor::visit (AST::ExternalTypeItem &item)
- {
-   visit_outer_attrs (item);
-   visit (item.get_visibility ());
- }
- 
- void
  PointerVisitor::visit (AST::ExternalStaticItem &item)
  {
    visit_outer_attrs (item);
--- 825,830 ----
*************** PointerVisitor::visit (AST::ExternBlock
*** 1091,1177 ****
  }
  
  void
- PointerVisitor::visit (AST::MacroMatchFragment &match)
- {}
- 
- void
- PointerVisitor::visit (AST::MacroMatchRepetition &match)
- {
-   for (auto &m : match.get_matches ())
-     visit (m);
- }
- 
- void
- PointerVisitor::visit (AST::MacroMatcher &matcher)
- {
-   for (auto &m : matcher.get_matches ())
-     visit (m);
- }
- 
- void
- PointerVisitor::visit (AST::MacroTranscriber &transcriber)
- {
-   visit (transcriber.get_token_tree ());
- }
- 
- void
- PointerVisitor::visit (AST::MacroRule &rule)
- {
-   visit (rule.get_matcher ());
-   visit (rule.get_transcriber ());
- }
- 
- void
- PointerVisitor::visit (AST::MacroRulesDefinition &rules_def)
- {
-   visit_outer_attrs (rules_def);
-   for (auto &rule : rules_def.get_macro_rules ())
-     visit (rule);
- }
- 
- void
- PointerVisitor::visit (AST::MacroInvocData &data)
- {
-   visit (data.get_path ());
-   visit (data.get_delim_tok_tree ());
- }
- 
- void
- PointerVisitor::visit (AST::MacroInvocation &macro_invoc)
- {
-   visit_outer_attrs (macro_invoc);
-   visit (macro_invoc.get_invoc_data ());
- }
- 
- void
- PointerVisitor::visit (AST::MetaItemPath &meta_item)
- {
-   visit (meta_item.get_path ());
- }
- 
- void
- PointerVisitor::visit (AST::MetaItemSeq &meta_item)
- {
-   visit (meta_item.get_path ());
-   for (auto &inner : meta_item.get_seq ())
-     visit (inner);
- }
- 
- void
- PointerVisitor::visit (AST::MetaListPaths &meta_item)
- {
-   for (auto &path : meta_item.get_paths ())
-     visit (path);
- }
- 
- void
- PointerVisitor::visit (AST::MetaListNameValueStr &meta_item)
- {
-   for (auto &str : meta_item.get_values ())
-     visit (str);
- }
- 
- void
  PointerVisitor::visit (AST::IdentifierPattern &pattern)
  {
    if (pattern.has_subpattern ())
--- 843,848 ----
*************** PointerVisitor::visit (AST::IdentifierPa
*** 1179,1196 ****
  }
  
  void
- PointerVisitor::visit (AST::RangePatternBoundPath &bound)
- {
-   visit (bound.get_path ());
- }
- 
- void
- PointerVisitor::visit (AST::RangePatternBoundQualPath &bound)
- {
-   visit (bound.get_qualified_path ());
- }
- 
- void
  PointerVisitor::visit (AST::RangePattern &pattern)
  {
    // FIXME: So should this be reseat() instead? Can we have macro invocations as
--- 850,855 ----
*************** PointerVisitor::visit (AST::StructPatter
*** 1222,1249 ****
  }
  
  void
- PointerVisitor::visit (AST::StructPatternFieldIdent &field)
- {
-   visit_outer_attrs (field);
- }
- 
- void
- PointerVisitor::visit (AST::StructPatternElements &spe)
- {
-   for (auto &field : spe.get_struct_pattern_fields ())
-     visit (field);
-   for (auto &attribute : spe.get_etc_outer_attrs ())
-     visit (attribute);
- }
- 
- void
- PointerVisitor::visit (AST::StructPattern &pattern)
- {
-   visit (pattern.get_path ());
-   visit (pattern.get_struct_pattern_elems ());
- }
- 
- void
  PointerVisitor::visit (AST::TupleStructItemsNoRest &tuple_items)
  {
    for (auto &pattern : tuple_items.get_patterns ())
--- 881,886 ----
*************** PointerVisitor::visit (AST::TupleStructI
*** 1260,1272 ****
  }
  
  void
- PointerVisitor::visit (AST::TupleStructPattern &pattern)
- {
-   visit (pattern.get_path ());
-   visit (pattern.get_items ());
- }
- 
- void
  PointerVisitor::visit (AST::TuplePatternItemsNoRest &tuple_items)
  {
    for (auto &pattern : tuple_items.get_patterns ())
--- 897,902 ----
*************** PointerVisitor::visit (AST::TuplePattern
*** 1283,1294 ****
  }
  
  void
- PointerVisitor::visit (AST::TuplePattern &pattern)
- {
-   visit (pattern.get_items ());
- }
- 
- void
  PointerVisitor::visit (AST::GroupedPattern &pattern)
  {
    reseat (pattern.get_pattern_in_parens_ptr ());
--- 913,918 ----
*************** PointerVisitor::visit (AST::SlicePattern
*** 1311,1322 ****
  }
  
  void
- PointerVisitor::visit (AST::SlicePattern &pattern)
- {
-   visit (pattern.get_items ());
- }
- 
- void
  PointerVisitor::visit (AST::AltPattern &pattern)
  {
    for (auto &alt : pattern.get_alts ())
--- 935,940 ----
*************** PointerVisitor::visit (AST::AltPattern &
*** 1324,1333 ****
  }
  
  void
- PointerVisitor::visit (AST::EmptyStmt &stmt)
- {}
- 
- void
  PointerVisitor::visit (AST::LetStmt &stmt)
  {
    visit_outer_attrs (stmt);
--- 942,947 ----
*************** PointerVisitor::visit (AST::ExprStmt &st
*** 1345,1372 ****
  }
  
  void
- PointerVisitor::visit (AST::TraitBound &bound)
- {
-   for (auto &lifetime : bound.get_for_lifetimes ())
-     visit (lifetime);
-   visit (bound.get_type_path ());
- }
- 
- void
- PointerVisitor::visit (AST::ImplTraitType &type)
- {
-   for (auto &bound : type.get_type_param_bounds ())
-     visit (bound);
- }
- 
- void
- PointerVisitor::visit (AST::TraitObjectType &type)
- {
-   for (auto &bound : type.get_type_param_bounds ())
-     visit (bound);
- }
- 
- void
  PointerVisitor::visit (AST::ParenthesisedType &type)
  {
    reseat (type.get_type_in_parens ());
--- 959,964 ----
*************** PointerVisitor::visit (AST::TupleType &t
*** 1394,1403 ****
  }
  
  void
- PointerVisitor::visit (AST::NeverType &type)
- {}
- 
- void
  PointerVisitor::visit (AST::RawPointerType &type)
  {
    reseat (type.get_type_pointed_to_ptr ());
--- 986,991 ----
*************** PointerVisitor::visit (AST::SliceType &t
*** 1424,1433 ****
  }
  
  void
- PointerVisitor::visit (AST::InferredType &type)
- {}
- 
- void
  PointerVisitor::visit (AST::MaybeNamedParam &param)
  {
    visit_outer_attrs (param);
--- 1012,1017 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-pointer-visitor.h gcc-16-20260419/gcc/rust/ast/rust-ast-pointer-visitor.h
*** gcc-16-20260412/gcc/rust/ast/rust-ast-pointer-visitor.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-pointer-visitor.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 69,80 ****
    void visit (AST::TypePath &path) override;
    void visit (AST::QualifiedPathInExpression &path) override;
    void visit (AST::QualifiedPathType &path) override;
-   void visit (AST::QualifiedPathInType &path) override;
-   void visit (AST::LiteralExpr &expr) override;
-   void visit (AST::AttrInputLiteral &attr_input) override;
-   void visit (AST::AttrInputMacro &attr_input) override;
-   void visit (AST::MetaItemLitExpr &meta_item) override;
-   void visit (AST::SimplePath &path) override;
    void visit (AST::MetaItemPathExpr &meta_item) override;
    void visit (AST::BorrowExpr &expr) override;
    void visit (AST::DereferenceExpr &expr) override;
--- 69,74 ----
*************** public:
*** 93,111 ****
    void visit (AST::ArrayIndexExpr &expr) override;
    void visit (AST::TupleExpr &expr) override;
    void visit (AST::TupleIndexExpr &expr) override;
-   void visit (AST::StructExprStruct &expr) override;
-   void visit (AST::StructExprFieldIdentifier &field) override;
    void visit (AST::StructExprFieldIdentifierValue &field) override;
    void visit (AST::StructExprFieldIndexValue &field) override;
    void visit (AST::StructBase &base) override;
-   void visit (AST::StructExprStructFields &expr) override;
-   void visit (AST::StructExprStructBase &expr) override;
    void visit (AST::CallExpr &expr) override;
    void visit (AST::MethodCallExpr &expr) override;
    void visit (AST::FieldAccessExpr &expr) override;
    void visit (AST::ClosureExprInner &expr) override;
    void visit (AST::BlockExpr &expr) override;
-   void visit (AST::ConstBlock &expr) override;
    void visit (AST::AnonConst &expr) override;
    void visit (AST::ClosureExprInnerTyped &expr) override;
    void visit (AST::ClosureParam &param) override;
--- 87,100 ----
*************** public:
*** 114,135 ****
    void visit (AST::RangeFromToExpr &expr) override;
    void visit (AST::RangeFromExpr &expr) override;
    void visit (AST::RangeToExpr &expr) override;
-   void visit (AST::RangeFullExpr &expr) override;
    void visit (AST::RangeFromToInclExpr &expr) override;
    void visit (AST::RangeToInclExpr &expr) override;
    void visit (AST::ReturnExpr &expr) override;
    void visit (AST::TryExpr &expr) override;
    void visit (AST::BoxExpr &expr) override;
    void visit (AST::UnsafeBlockExpr &expr) override;
-   void visit (AST::LoopLabel &label) override;
    void visit (AST::LoopExpr &expr) override;
    void visit (AST::WhileLoopExpr &expr) override;
    void visit (AST::WhileLetLoopExpr &expr) override;
    void visit (AST::ForLoopExpr &expr) override;
    void visit (AST::IfExpr &expr) override;
-   void visit (AST::IfExprConseqElse &expr) override;
    void visit (AST::IfLetExpr &expr) override;
-   void visit (AST::IfLetExprConseqElse &expr) override;
    void visit (AST::MatchArm &arm) override;
    void visit (AST::MatchCase &arm) override;
    void visit (AST::MatchExpr &expr) override;
--- 103,120 ----
*************** public:
*** 138,226 ****
    void visit (AST::InlineAsm &expr) override;
    void visit (AST::LlvmInlineAsm &expr) override;
    void visit (AST::TypeParam &param) override;
-   void visit (AST::LifetimeWhereClauseItem &item) override;
    void visit (AST::TypeBoundWhereClauseItem &item) override;
-   void visit (AST::Visibility &vis) override;
-   void visit (AST::WhereClause &where) override;
    void visit (AST::FunctionParam &param) override;
    void visit (AST::SelfParam &param) override;
    void visit (AST::Module &module) override;
-   void visit (AST::ExternCrate &crate) override;
-   void visit (AST::UseTreeGlob &use_tree) override;
-   void visit (AST::UseTreeList &use_tree) override;
-   void visit (AST::UseTreeRebind &use_tree) override;
-   void visit (AST::UseDeclaration &use_decl) override;
    void visit_function_params (AST::Function &function) override;
    void visit (AST::Function &function) override;
    void visit (AST::TypeAlias &type_alias) override;
    void visit (AST::StructField &field) override;
-   void visit (AST::StructStruct &struct_item) override;
    void visit (AST::TupleField &field) override;
-   void visit (AST::TupleStruct &tuple_struct) override;
-   void visit (AST::EnumItem &item) override;
-   void visit (AST::EnumItemTuple &item) override;
-   void visit (AST::EnumItemStruct &item) override;
    void visit (AST::EnumItemDiscriminant &item) override;
-   void visit (AST::Enum &enum_item) override;
-   void visit (AST::Union &union_item) override;
    void visit (AST::ConstantItem &const_item) override;
    void visit (AST::StaticItem &static_item) override;
-   void visit (AST::TraitItemType &item) override;
    void visit (AST::Trait &trait) override;
    void visit (AST::InherentImpl &impl) override;
    void visit (AST::TraitImpl &impl) override;
-   void visit (AST::ExternalTypeItem &item) override;
    void visit (AST::ExternalStaticItem &item) override;
    void visit (AST::ExternBlock &block) override;
-   void visit (AST::MacroMatchFragment &match) override;
-   void visit (AST::MacroMatchRepetition &match) override;
-   void visit (AST::MacroMatcher &matcher) override;
-   void visit (AST::MacroTranscriber &transcriber) override;
-   void visit (AST::MacroRule &rule) override;
-   void visit (AST::MacroRulesDefinition &rules_def) override;
-   void visit (AST::MacroInvocData &data) override;
-   void visit (AST::MacroInvocation &macro_invoc) override;
-   void visit (AST::MetaItemPath &meta_item) override;
-   void visit (AST::MetaItemSeq &meta_item) override;
-   void visit (AST::MetaListPaths &meta_item) override;
-   void visit (AST::MetaListNameValueStr &meta_item) override;
    void visit (AST::IdentifierPattern &pattern) override;
-   void visit (AST::RangePatternBoundPath &bound) override;
-   void visit (AST::RangePatternBoundQualPath &bound) override;
    void visit (AST::RangePattern &pattern) override;
    void visit (AST::ReferencePattern &pattern) override;
    void visit (AST::StructPatternFieldTuplePat &field) override;
    void visit (AST::StructPatternFieldIdentPat &field) override;
-   void visit (AST::StructPatternFieldIdent &field) override;
-   void visit (AST::StructPatternElements &spe) override;
-   void visit (AST::StructPattern &pattern) override;
    void visit (AST::TupleStructItemsNoRest &tuple_items) override;
    void visit (AST::TupleStructItemsHasRest &tuple_items) override;
-   void visit (AST::TupleStructPattern &pattern) override;
    void visit (AST::TuplePatternItemsNoRest &tuple_items) override;
    void visit (AST::TuplePatternItemsHasRest &tuple_items) override;
-   void visit (AST::TuplePattern &pattern) override;
    void visit (AST::GroupedPattern &pattern) override;
    void visit (AST::SlicePatternItemsNoRest &items) override;
    void visit (AST::SlicePatternItemsHasRest &items) override;
-   void visit (AST::SlicePattern &pattern) override;
    void visit (AST::AltPattern &pattern) override;
-   void visit (AST::EmptyStmt &stmt) override;
    void visit (AST::LetStmt &stmt) override;
    void visit (AST::ExprStmt &stmt) override;
-   void visit (AST::TraitBound &bound) override;
-   void visit (AST::ImplTraitType &type) override;
-   void visit (AST::TraitObjectType &type) override;
    void visit (AST::ParenthesisedType &type) override;
    void visit (AST::ImplTraitTypeOneBound &type) override;
    void visit (AST::TraitObjectTypeOneBound &type) override;
    void visit (AST::TupleType &type) override;
-   void visit (AST::NeverType &type) override;
    void visit (AST::RawPointerType &type) override;
    void visit (AST::ReferenceType &type) override;
    void visit (AST::ArrayType &type) override;
    void visit (AST::SliceType &type) override;
-   void visit (AST::InferredType &type) override;
    void visit (AST::MaybeNamedParam &param) override;
    void visit (AST::BareFunctionType &type) override;
    void visit (AST::FormatArgs &) override;
--- 123,168 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-visitor.cc gcc-16-20260419/gcc/rust/ast/rust-ast-visitor.cc
*** gcc-16-20260412/gcc/rust/ast/rust-ast-visitor.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-visitor.cc	Sun Apr 19 22:32:07 2026
*************** DefaultASTVisitor::visit (AST::AttrInput
*** 209,220 ****
  }
  
  void
- DefaultASTVisitor::visit (AST::AttrInputMacro &attr_input)
- {
-   visit (attr_input.get_macro ());
- }
- 
- void
  DefaultASTVisitor::visit (AST::AttrInputExpr &attr_input)
  {
    visit (attr_input.get_expr ());
--- 209,214 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast-visitor.h gcc-16-20260419/gcc/rust/ast/rust-ast-visitor.h
*** gcc-16-20260412/gcc/rust/ast/rust-ast-visitor.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast-visitor.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 72,78 ****
    // rust-expr.h
    virtual void visit (LiteralExpr &expr) = 0;
    virtual void visit (AttrInputLiteral &attr_input) = 0;
-   virtual void visit (AttrInputMacro &attr_input) = 0;
    virtual void visit (AttrInputExpr &attr_input) = 0;
    virtual void visit (MetaItemLitExpr &meta_item) = 0;
    virtual void visit (MetaItemPathExpr &meta_item) = 0;
--- 72,77 ----
*************** public:
*** 270,276 ****
    virtual void visit (AST::LiteralExpr &expr) override;
    virtual void visit (AST::AttrInputLiteral &attr_input) override;
    virtual void visit (AST::AttrInputExpr &attr_input) override;
-   virtual void visit (AST::AttrInputMacro &attr_input) override;
    virtual void visit (AST::MetaItemLitExpr &meta_item) override;
    virtual void visit (AST::MetaItemPathExpr &meta_item) override;
    virtual void visit (AST::BorrowExpr &expr) override;
--- 269,274 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast.cc gcc-16-20260419/gcc/rust/ast/rust-ast.cc
*** gcc-16-20260412/gcc/rust/ast/rust-ast.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast.cc	Sun Apr 19 22:32:07 2026
*************** Attribute::get_traits_to_derive ()
*** 344,350 ****
        break;
      case AST::AttrInput::TOKEN_TREE:
      case AST::AttrInput::LITERAL:
-     case AST::AttrInput::MACRO:
      case AST::AttrInput::EXPR:
        rust_unreachable ();
        break;
--- 344,349 ----
*************** Function::Function (Function const &othe
*** 1107,1113 ****
    : VisItem (other), ExternalItem (other.get_node_id ()),
      qualifiers (other.qualifiers), function_name (other.function_name),
      where_clause (other.where_clause), locus (other.locus),
-     has_default (other.has_default),
      is_external_function (other.is_external_function)
  {
    // guard to prevent null dereference (always required)
--- 1106,1111 ----
*************** Function::operator= (Function const &oth
*** 1139,1145 ****
    // visibility = other.visibility->clone_visibility();
    // outer_attrs = other.outer_attrs;
    locus = other.locus;
-   has_default = other.has_default;
    is_external_function = other.is_external_function;
  
    // guard to prevent null dereference (always required)
--- 1137,1142 ----
*************** AttrInputExpr::accept_vis (ASTVisitor &v
*** 3377,3388 ****
    vis.visit (*this);
  }
  
- std::string
- AttrInputMacro::as_string () const
- {
-   return " = " + macro->as_string ();
- }
- 
  /* Override that calls the function recursively on all items contained within
   * the module. */
  void
--- 3374,3379 ----
*************** BlockExpr::normalize_tail_expr ()
*** 4314,4332 ****
      }
  }
  
- // needed here because "rust-expr.h" doesn't include "rust-macro.h"
- AttrInputMacro::AttrInputMacro (const AttrInputMacro &oth)
-   : macro (oth.macro->clone_macro_invocation_impl ())
- {}
- 
- AttrInputMacro &
- AttrInputMacro::operator= (const AttrInputMacro &oth)
- {
-   macro = std::unique_ptr<MacroInvocation> (
-     oth.macro->clone_macro_invocation_impl ());
-   return *this;
- }
- 
  /* Visitor implementations - these are short but inlining can't happen anyway
   * due to virtual functions and I didn't want to make the ast header includes
   * any longer than they already are. */
--- 4305,4310 ----
*************** AttrInputLiteral::accept_vis (ASTVisitor
*** 4372,4383 ****
  {
    vis.visit (*this);
  }
- 
- void
- AttrInputMacro::accept_vis (ASTVisitor &vis)
- {
-   vis.visit (*this);
- }
  
  void
  MetaItemLitExpr::accept_vis (ASTVisitor &vis)
--- 4350,4355 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-ast.h gcc-16-20260419/gcc/rust/ast/rust-ast.h
*** gcc-16-20260412/gcc/rust/ast/rust-ast.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-ast.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 632,637 ****
--- 632,642 ----
  
    AttrInput &get_attr_input () const { return *attr_input; }
  
+   void set_attr_input (std::unique_ptr<AST::AttrInput> input)
+   {
+     attr_input = std::move (input);
+   }
+ 
    /* e.g.:
        #![crate_type = "lib"]
        #[test]
*************** public:
*** 726,732 ****
    {
      EXPR,
      LITERAL,
-     MACRO,
      META_ITEM,
      TOKEN_TREE,
    };
--- 731,736 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-expr.h gcc-16-20260419/gcc/rust/ast/rust-expr.h
*** gcc-16-20260412/gcc/rust/ast/rust-expr.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-expr.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 204,261 ****
  
    Expr &get_expr () { return *expr; }
  
    AttrInputExpr *clone_attr_input_impl () const override
    {
      return new AttrInputExpr (*this);
    }
  };
  
- // Like an AttrInputLiteral, but stores a MacroInvocation
- class AttrInputMacro : public AttrInput
- {
-   std::unique_ptr<MacroInvocation> macro;
- 
- public:
-   AttrInputMacro (std::unique_ptr<MacroInvocation> macro)
-     : macro (std::move (macro))
-   {}
- 
-   AttrInputMacro (const AttrInputMacro &oth);
- 
-   AttrInputMacro (AttrInputMacro &&oth) : macro (std::move (oth.macro)) {}
- 
-   AttrInputMacro &operator= (const AttrInputMacro &oth);
- 
-   AttrInputMacro &operator= (AttrInputMacro &&oth)
-   {
-     macro = std::move (oth.macro);
-     return *this;
-   }
- 
-   std::string as_string () const override;
- 
-   void accept_vis (ASTVisitor &vis) override;
- 
-   // assuming this can't be a cfg predicate
-   bool check_cfg_predicate (const Session &) const override { return false; }
- 
-   // assuming this is like AttrInputLiteral
-   bool is_meta_item () const override { return false; }
- 
-   std::unique_ptr<MacroInvocation> &get_macro () { return macro; }
- 
-   AttrInputType get_attr_input_type () const final override
-   {
-     return AttrInput::AttrInputType::MACRO;
-   }
- 
- protected:
-   AttrInputMacro *clone_attr_input_impl () const override
-   {
-     return new AttrInputMacro (*this);
-   }
- };
- 
  /* literal expr only meta item inner - TODO possibly replace with inheritance of
   * LiteralExpr itself? */
  class MetaItemLitExpr : public MetaItemInner
--- 204,217 ----
  
    Expr &get_expr () { return *expr; }
  
+   std::unique_ptr<Expr> &get_expr_ptr () { return expr; }
+ 
    AttrInputExpr *clone_attr_input_impl () const override
    {
      return new AttrInputExpr (*this);
    }
  };
  
  /* literal expr only meta item inner - TODO possibly replace with inheritance of
   * LiteralExpr itself? */
  class MetaItemLitExpr : public MetaItemInner
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-fmt.h gcc-16-20260419/gcc/rust/ast/rust-fmt.h
*** gcc-16-20260412/gcc/rust/ast/rust-fmt.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-fmt.h	Sun Apr 19 22:32:07 2026
*************** enum ParseMode
*** 398,403 ****
--- 398,407 ----
    InlineAsm,
  };
  
+ // Required to avoid Clang warning about returning an incomplete FFIVec<Piece>
+ // from extern "C" functions.
+ template class FFIVec<Piece>;
+ 
  extern "C" {
  
  FFIVec<Piece> collect_pieces (RustHamster input, bool append_newline,
diff -Nrcpad gcc-16-20260412/gcc/rust/ast/rust-item.h gcc-16-20260419/gcc/rust/ast/rust-item.h
*** gcc-16-20260412/gcc/rust/ast/rust-item.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/ast/rust-item.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 547,552 ****
--- 547,553 ----
  // Qualifiers for function, i.e. const, unsafe, extern etc.
  class FunctionQualifiers
  {
+   Default default_status;
    Async async_status;
    Const const_status;
    Unsafety unsafe_status;
*************** class FunctionQualifiers
*** 555,566 ****
    location_t locus;
  
  public:
!   FunctionQualifiers (location_t locus, Async async_status, Const const_status,
  		      Unsafety unsafe_status, bool has_extern = false,
  		      std::string extern_abi = std::string ())
!     : async_status (async_status), const_status (const_status),
!       unsafe_status (unsafe_status), has_extern (has_extern),
!       extern_abi (std::move (extern_abi)), locus (locus)
    {
      if (!this->extern_abi.empty ())
        {
--- 556,569 ----
    location_t locus;
  
  public:
!   FunctionQualifiers (location_t locus, Default default_status,
! 		      Async async_status, Const const_status,
  		      Unsafety unsafe_status, bool has_extern = false,
  		      std::string extern_abi = std::string ())
!     : default_status (default_status), async_status (async_status),
!       const_status (const_status), unsafe_status (unsafe_status),
!       has_extern (has_extern), extern_abi (std::move (extern_abi)),
!       locus (locus)
    {
      if (!this->extern_abi.empty ())
        {
*************** public:
*** 571,576 ****
--- 574,580 ----
  
    std::string as_string () const;
  
+   bool is_default () const { return default_status == Default::Yes; }
    bool is_unsafe () const { return unsafe_status == Unsafety::Unsafe; }
    bool is_extern () const { return has_extern; }
    bool is_const () const { return const_status == Const::Yes; }
*************** public:
*** 1074,1080 ****
  
    void accept_vis (ASTVisitor &vis) override;
  
!   PathType get_glob_type () { return glob_type; }
  
    Kind get_kind () const override { return Glob; }
  
--- 1078,1084 ----
  
    void accept_vis (ASTVisitor &vis) override;
  
!   PathType get_glob_type () const { return glob_type; }
  
    Kind get_kind () const override { return Glob; }
  
*************** class Function : public VisItem, public
*** 1343,1349 ****
    WhereClause where_clause;
    tl::optional<std::unique_ptr<BlockExpr>> function_body;
    location_t locus;
-   bool has_default;
    bool is_external_function;
  
  public:
--- 1347,1352 ----
*************** public:
*** 1368,1374 ****
  
    bool has_body () const { return function_body.has_value (); }
  
!   bool is_default () const { return has_default; }
  
    // Mega-constructor with all possible fields
    Function (Identifier function_name, FunctionQualifiers qualifiers,
--- 1371,1377 ----
  
    bool has_body () const { return function_body.has_value (); }
  
!   bool is_default () const { return qualifiers.is_default (); }
  
    // Mega-constructor with all possible fields
    Function (Identifier function_name, FunctionQualifiers qualifiers,
*************** public:
*** 1377,1384 ****
  	    std::unique_ptr<Type> return_type, WhereClause where_clause,
  	    tl::optional<std::unique_ptr<BlockExpr>> function_body,
  	    Visibility vis, std::vector<Attribute> outer_attrs,
! 	    location_t locus, bool has_default = false,
! 	    bool is_external_function = false)
      : VisItem (std::move (vis), std::move (outer_attrs)),
        ExternalItem (Stmt::node_id), qualifiers (std::move (qualifiers)),
        function_name (std::move (function_name)),
--- 1380,1386 ----
  	    std::unique_ptr<Type> return_type, WhereClause where_clause,
  	    tl::optional<std::unique_ptr<BlockExpr>> function_body,
  	    Visibility vis, std::vector<Attribute> outer_attrs,
! 	    location_t locus, bool is_external_function = false)
      : VisItem (std::move (vis), std::move (outer_attrs)),
        ExternalItem (Stmt::node_id), qualifiers (std::move (qualifiers)),
        function_name (std::move (function_name)),
*************** public:
*** 1387,1393 ****
        return_type (std::move (return_type)),
        where_clause (std::move (where_clause)),
        function_body (std::move (function_body)), locus (locus),
!       has_default (has_default), is_external_function (is_external_function)
    {}
  
    // TODO: add constructor with less fields
--- 1389,1395 ----
        return_type (std::move (return_type)),
        where_clause (std::move (where_clause)),
        function_body (std::move (function_body)), locus (locus),
!       is_external_function (is_external_function)
    {}
  
    // TODO: add constructor with less fields
diff -Nrcpad gcc-16-20260412/gcc/rust/backend/rust-compile-asm.cc gcc-16-20260419/gcc/rust/backend/rust-compile-asm.cc
*** gcc-16-20260412/gcc/rust/backend/rust-compile-asm.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/backend/rust-compile-asm.cc	Sun Apr 19 22:32:07 2026
***************
*** 1,16 ****
  #include "rust-compile-asm.h"
  #include "rust-compile-expr.h"
  #include "rust-system.h"
  
  namespace Rust {
  namespace Compile {
  
! static tree
! chain_asm_operand (tree head, const char *constraint, tree value)
  {
    auto name = build_string (strlen (constraint) + 1, constraint);
!   return chainon (head,
! 		  build_tree_list (build_tree_list (NULL_TREE, name), value));
  }
  
  CompileAsm::CompileAsm (Context *ctx) : HIRCompileBase (ctx) {}
--- 1,16 ----
  #include "rust-compile-asm.h"
  #include "rust-compile-expr.h"
  #include "rust-system.h"
+ #include "rust-ggc.h"
  
  namespace Rust {
  namespace Compile {
  
! static void
! chain_asm_operand (GGC::ChainList &ls, const char *constraint, tree value)
  {
    auto name = build_string (strlen (constraint) + 1, constraint);
!   ls.push_back (build_tree_list (build_tree_list (NULL_TREE, name), value));
  }
  
  CompileAsm::CompileAsm (Context *ctx) : HIRCompileBase (ctx) {}
*************** CompileAsm::asm_construct_outputs (HIR::
*** 107,113 ****
  {
    // TODO: Do i need to do this?
  
!   tree head = NULL_TREE;
    for (auto &operand : expr.get_operands ())
      {
        tl::optional<std::reference_wrapper<HIR::Expr>> out_expr
--- 107,113 ----
  {
    // TODO: Do i need to do this?
  
!   GGC::ChainList ls;
    for (auto &operand : expr.get_operands ())
      {
        tl::optional<std::reference_wrapper<HIR::Expr>> out_expr
*************** CompileAsm::asm_construct_outputs (HIR::
*** 118,126 ****
        tree out_tree = CompileExpr::Compile (*out_expr, this->ctx);
        // expects a tree list
        // TODO: This assumes that the output is a register
!       head = chain_asm_operand (head, "=r", out_tree);
      }
!   return head;
  }
  
  tl::optional<std::reference_wrapper<HIR::Expr>>
--- 118,126 ----
        tree out_tree = CompileExpr::Compile (*out_expr, this->ctx);
        // expects a tree list
        // TODO: This assumes that the output is a register
!       chain_asm_operand (ls, "=r", out_tree);
      }
!   return ls.get_head ();
  }
  
  tl::optional<std::reference_wrapper<HIR::Expr>>
*************** tree
*** 147,153 ****
  CompileAsm::asm_construct_inputs (HIR::InlineAsm &expr)
  {
    // TODO: Do i need to do this?
!   tree head = NULL_TREE;
    for (auto &operand : expr.get_operands ())
      {
        tl::optional<std::reference_wrapper<HIR::Expr>> in_expr
--- 147,154 ----
  CompileAsm::asm_construct_inputs (HIR::InlineAsm &expr)
  {
    // TODO: Do i need to do this?
! 
!   GGC::ChainList ls;
    for (auto &operand : expr.get_operands ())
      {
        tl::optional<std::reference_wrapper<HIR::Expr>> in_expr
*************** CompileAsm::asm_construct_inputs (HIR::I
*** 158,166 ****
        tree in_tree = CompileExpr::Compile (*in_expr, this->ctx);
        // expects a tree list
        // TODO: This assumes that the input is a register
!       head = chain_asm_operand (head, "r", in_tree);
      }
!   return head;
  }
  
  tree
--- 159,167 ----
        tree in_tree = CompileExpr::Compile (*in_expr, this->ctx);
        // expects a tree list
        // TODO: This assumes that the input is a register
!       chain_asm_operand (ls, "r", in_tree);
      }
!   return ls.get_head ();
  }
  
  tree
*************** CompileLlvmAsm::CompileLlvmAsm (Context
*** 182,210 ****
  tree
  CompileLlvmAsm::construct_operands (std::vector<HIR::LlvmOperand> operands)
  {
!   tree head = NULL_TREE;
    for (auto &operand : operands)
      {
        tree t = CompileExpr::Compile (*operand.expr, this->ctx);
        auto name = build_string (operand.constraint.size () + 1,
  				operand.constraint.c_str ());
!       head = chainon (head,
! 		      build_tree_list (build_tree_list (NULL_TREE, name), t));
      }
!   return head;
  }
  
  tree
  CompileLlvmAsm::construct_clobbers (std::vector<AST::TupleClobber> clobbers)
  {
!   tree head = NULL_TREE;
    for (auto &clobber : clobbers)
      {
        auto name
  	= build_string (clobber.symbol.size () + 1, clobber.symbol.c_str ());
!       head = chainon (head, build_tree_list (NULL_TREE, name));
      }
!   return head;
  }
  
  tree
--- 183,210 ----
  tree
  CompileLlvmAsm::construct_operands (std::vector<HIR::LlvmOperand> operands)
  {
!   GGC::ChainList ls;
    for (auto &operand : operands)
      {
        tree t = CompileExpr::Compile (*operand.expr, this->ctx);
        auto name = build_string (operand.constraint.size () + 1,
  				operand.constraint.c_str ());
!       ls.push_back (build_tree_list (build_tree_list (NULL_TREE, name), t));
      }
!   return ls.get_head ();
  }
  
  tree
  CompileLlvmAsm::construct_clobbers (std::vector<AST::TupleClobber> clobbers)
  {
!   GGC::ChainList ls;
    for (auto &clobber : clobbers)
      {
        auto name
  	= build_string (clobber.symbol.size () + 1, clobber.symbol.c_str ());
!       ls.push_back (build_tree_list (NULL_TREE, name));
      }
!   return ls.get_head ();
  }
  
  tree
diff -Nrcpad gcc-16-20260412/gcc/rust/backend/rust-compile-expr.cc gcc-16-20260419/gcc/rust/backend/rust-compile-expr.cc
*** gcc-16-20260412/gcc/rust/backend/rust-compile-expr.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/backend/rust-compile-expr.cc	Sun Apr 19 22:32:07 2026
*************** CompileExpr::visit (HIR::IfExpr &expr)
*** 360,365 ****
--- 360,366 ----
  {
    auto stmt = CompileConditionalBlocks::compile (&expr, ctx, nullptr);
    ctx->add_statement (stmt);
+   translated = unit_expression (expr.get_locus ());
  }
  
  void
*************** CompileExpr::visit (HIR::InlineAsm &expr
*** 367,375 ****
  {
    CompileAsm asm_codegen (ctx);
    ctx->add_statement (asm_codegen.tree_codegen_asm (expr));
!   // translated = build_asm_expr (0, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE,
!   //		       NULL_TREE, true, true);
!   // CompileAsm::asm_build_expr (expr);
  }
  
  void
--- 368,374 ----
  {
    CompileAsm asm_codegen (ctx);
    ctx->add_statement (asm_codegen.tree_codegen_asm (expr));
!   translated = unit_expression (expr.get_locus ());
  }
  
  void
*************** CompileExpr::visit (HIR::LlvmInlineAsm &
*** 377,382 ****
--- 376,382 ----
  {
    CompileLlvmAsm asm_codegen (ctx);
    ctx->add_statement (asm_codegen.tree_codegen_asm (expr));
+   translated = unit_expression (expr.get_locus ());
  }
  
  void
*************** CompileExpr::visit (HIR::WhileLoopExpr &
*** 848,853 ****
--- 848,854 ----
  
    tree loop_expr = Backend::loop_expression (loop_block, expr.get_locus ());
    ctx->add_statement (loop_expr);
+   translated = unit_expression (expr.get_locus ());
  }
  
  void
*************** CompileExpr::visit (HIR::AssignmentExpr
*** 1099,1104 ****
--- 1100,1106 ----
      = Backend::assignment_statement (lvalue, rvalue, expr.get_locus ());
  
    ctx->add_statement (assignment);
+   translated = unit_expression (expr.get_locus ());
  }
  
  // Helper for CompileExpr::visit (HIR::MatchExpr).
diff -Nrcpad gcc-16-20260412/gcc/rust/backend/rust-compile-implitem.cc gcc-16-20260419/gcc/rust/backend/rust-compile-implitem.cc
*** gcc-16-20260412/gcc/rust/backend/rust-compile-implitem.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/backend/rust-compile-implitem.cc	Sun Apr 19 22:32:07 2026
*************** CompileTraitItem::visit (HIR::TraitItemC
*** 44,51 ****
  			     resolved_type, canonical_path, const_value_expr,
  			     constant.get_locus (),
  			     const_value_expr.get_locus ());
!   ctx->push_const (const_expr);
!   ctx->insert_const_decl (constant.get_mappings ().get_hirid (), const_expr);
  
    reference = const_expr;
  }
--- 44,55 ----
  			     resolved_type, canonical_path, const_value_expr,
  			     constant.get_locus (),
  			     const_value_expr.get_locus ());
!   if (const_expr != error_mark_node)
!     {
!       ctx->push_const (const_expr);
!       ctx->insert_const_decl (constant.get_mappings ().get_hirid (),
! 			      const_expr);
!     }
  
    reference = const_expr;
  }
diff -Nrcpad gcc-16-20260412/gcc/rust/backend/rust-compile-intrinsic.cc gcc-16-20260419/gcc/rust/backend/rust-compile-intrinsic.cc
*** gcc-16-20260412/gcc/rust/backend/rust-compile-intrinsic.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/backend/rust-compile-intrinsic.cc	Sun Apr 19 22:32:07 2026
*************** static const std::map<std::string, handl
*** 68,74 ****
       {IValue::CATCH_UNWIND, handlers::try_handler (true)},
       {IValue::DISCRIMINANT_VALUE, handlers::discriminant_value},
       {IValue::VARIANT_COUNT, handlers::variant_count},
!      {IValue::BSWAP, handlers::bswap_handler}};
  
  Intrinsics::Intrinsics (Context *ctx) : ctx (ctx) {}
  
--- 68,78 ----
       {IValue::CATCH_UNWIND, handlers::try_handler (true)},
       {IValue::DISCRIMINANT_VALUE, handlers::discriminant_value},
       {IValue::VARIANT_COUNT, handlers::variant_count},
!      {IValue::BSWAP, handlers::bswap_handler},
!      {IValue::CTLZ, handlers::ctlz_handler},
!      {IValue::CTLZ_NONZERO, handlers::ctlz_nonzero_handler},
!      {IValue::CTTZ, handlers::cttz_handler},
!      {IValue::CTTZ_NONZERO, handlers::cttz_nonzero_handler}};
  
  Intrinsics::Intrinsics (Context *ctx) : ctx (ctx) {}
  
diff -Nrcpad gcc-16-20260412/gcc/rust/backend/rust-compile-item.cc gcc-16-20260419/gcc/rust/backend/rust-compile-item.cc
*** gcc-16-20260412/gcc/rust/backend/rust-compile-item.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/backend/rust-compile-item.cc	Sun Apr 19 22:32:07 2026
*************** CompileItem::visit (HIR::ConstantItem &c
*** 129,136 ****
  			     const_value_expr.get_locus ());
    ctx->pop_const_context ();
  
!   ctx->push_const (const_expr);
!   ctx->insert_const_decl (mappings.get_hirid (), const_expr);
    reference = const_expr;
  }
  
--- 129,139 ----
  			     const_value_expr.get_locus ());
    ctx->pop_const_context ();
  
!   if (const_expr != error_mark_node)
!     {
!       ctx->push_const (const_expr);
!       ctx->insert_const_decl (mappings.get_hirid (), const_expr);
!     }
    reference = const_expr;
  }
  
diff -Nrcpad gcc-16-20260412/gcc/rust/backend/rust-intrinsic-handlers.cc gcc-16-20260419/gcc/rust/backend/rust-intrinsic-handlers.cc
*** gcc-16-20260412/gcc/rust/backend/rust-intrinsic-handlers.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/backend/rust-intrinsic-handlers.cc	Sun Apr 19 22:32:07 2026
*************** atomic_load (Context *ctx, TyTy::FnType
*** 748,753 ****
--- 748,1028 ----
    return fndecl;
  }
  
+ // Shared inner implementation for ctlz and ctlz_nonzero.
+ //
+ // nonzero=false → ctlz: ctlz(0) is well-defined in Rust and must return
+ //   bit_size, but __builtin_clz*(0) is undefined behaviour in C, so an
+ //   explicit arg==0 guard is emitted.
+ //
+ // nonzero=true → ctlz_nonzero: the caller guarantees arg != 0 (passing 0
+ //   is immediate UB in Rust), so the zero guard is omitted entirely.
+ static tree
+ ctlz_handler (Context *ctx, TyTy::FnType *fntype, bool nonzero)
+ {
+   rust_assert (fntype->get_params ().size () == 1);
+ 
+   tree lookup = NULL_TREE;
+   if (check_for_cached_intrinsic (ctx, fntype, &lookup))
+     return lookup;
+ 
+   auto fndecl = compile_intrinsic_function (ctx, fntype);
+ 
+   std::vector<Bvariable *> param_vars;
+   compile_fn_params (ctx, fntype, fndecl, &param_vars);
+ 
+   auto arg_param = param_vars.at (0);
+   if (!Backend::function_set_parameters (fndecl, param_vars))
+     return error_mark_node;
+ 
+   rust_assert (fntype->get_num_substitutions () == 1);
+   auto *monomorphized_type
+     = fntype->get_substs ().at (0).get_param_ty ()->resolve ();
+   if (!check_for_basic_integer_type ("ctlz", fntype->get_locus (),
+ 				     monomorphized_type))
+     return error_mark_node;
+ 
+   enter_intrinsic_block (ctx, fndecl);
+ 
+   // BUILTIN ctlz FN BODY BEGIN
+   auto locus = fntype->get_locus ();
+   auto arg_expr = Backend::var_expression (arg_param, locus);
+   tree arg_type = TREE_TYPE (arg_expr);
+   unsigned bit_size = TYPE_PRECISION (arg_type);
+ 
+   // Convert signed types to their same-width unsigned equivalent before
+   // widening.  Without this, widening a signed type sign-extends it.
+   // For example, i8(-1) = 0xFF widened to u32 gives 0xFFFFFFFF, so
+   // __builtin_clz(0xFFFFFFFF) = 0, then 0 - diff(24) = -24.
+   // Converting to u8 first gives 0xFF → 0x000000FF (zero-extended), so
+   // __builtin_clz(0x000000FF) = 24, then 24 - 24 = 0.
+   tree unsigned_type
+     = !TYPE_UNSIGNED (arg_type) ? unsigned_type_for (arg_type) : arg_type;
+   tree unsigned_arg = fold_convert (unsigned_type, arg_expr);
+ 
+   // Pick the narrowest GCC clz builtin whose operand type is wide enough to
+   // hold bit_size bits.  diff records how many extra leading zeros the builtin
+   // will count due to the width difference and is subtracted from the result.
+   //
+   // Example: ctlz(1u8) bit_size=8, int_prec=32, diff=24.
+   //   __builtin_clz(1u) returns 31 (counts from bit 31 down to bit 0).
+   //   31 - 24 = 7, which is the correct answer for an 8-bit value.
+   //
+   // TODO: 128-bit integers are not yet handled.
+   unsigned int_prec = TYPE_PRECISION (unsigned_type_node);
+   unsigned long_prec = TYPE_PRECISION (long_unsigned_type_node);
+   unsigned longlong_prec = TYPE_PRECISION (long_long_unsigned_type_node);
+ 
+   const char *builtin_name = nullptr;
+   tree cast_type = NULL_TREE;
+   int diff = 0;
+ 
+   if (bit_size <= int_prec)
+     {
+       // Fits in unsigned int: covers 8/16/32-bit integers on most targets.
+       builtin_name = "__builtin_clz";
+       cast_type = unsigned_type_node;
+       diff = static_cast<int> (int_prec - bit_size);
+     }
+   else if (bit_size <= long_prec)
+     {
+       // Fits in unsigned long but not unsigned int.
+       builtin_name = "__builtin_clzl";
+       cast_type = long_unsigned_type_node;
+       diff = static_cast<int> (long_prec - bit_size);
+     }
+   else if (bit_size <= longlong_prec)
+     {
+       // Fits in unsigned long long but not unsigned long.
+       builtin_name = "__builtin_clzll";
+       cast_type = long_long_unsigned_type_node;
+       diff = static_cast<int> (longlong_prec - bit_size);
+     }
+   else
+     {
+       rust_sorry_at (locus, "ctlz for %u-bit integers is not yet implemented",
+ 		     bit_size);
+       return error_mark_node;
+     }
+ 
+   // Widen the unsigned arg to the chosen builtin's operand type, call it,
+   // then subtract the padding bits.  diff == 0 means the Rust type exactly
+   // matches the builtin's operand width, so the subtraction is skipped.
+   tree call_arg = fold_convert (cast_type, unsigned_arg);
+ 
+   tree builtin_decl = error_mark_node;
+   BuiltinsContext::get ().lookup_simple_builtin (builtin_name, &builtin_decl);
+   rust_assert (builtin_decl != error_mark_node);
+ 
+   tree builtin_fn = build_fold_addr_expr_loc (locus, builtin_decl);
+   tree clz_expr
+     = Backend::call_expression (builtin_fn, {call_arg}, nullptr, locus);
+ 
+   if (diff > 0)
+     {
+       tree diff_cst = build_int_cst (integer_type_node, diff);
+       clz_expr
+ 	= fold_build2 (MINUS_EXPR, integer_type_node, clz_expr, diff_cst);
+     }
+ 
+   clz_expr = fold_convert (uint32_type_node, clz_expr);
+ 
+   tree final_expr;
+   if (!nonzero)
+     {
+       // ctlz(0) must return bit_size per the Rust reference.
+       // We cannot pass 0 to __builtin_clz* (UB), so emit:
+       //   arg == 0 ? bit_size : clz_expr
+       tree zero = build_int_cst (arg_type, 0);
+       tree cmp = fold_build2 (EQ_EXPR, boolean_type_node, arg_expr, zero);
+       tree width_cst = build_int_cst (uint32_type_node, bit_size);
+       final_expr
+ 	= fold_build3 (COND_EXPR, uint32_type_node, cmp, width_cst, clz_expr);
+     }
+   else
+     {
+       // ctlz_nonzero: arg != 0 is guaranteed by the caller, no guard needed.
+       final_expr = clz_expr;
+     }
+ 
+   tree result = fold_convert (TREE_TYPE (DECL_RESULT (fndecl)), final_expr);
+   auto return_stmt = Backend::return_statement (fndecl, result, locus);
+   ctx->add_statement (return_stmt);
+   // BUILTIN ctlz FN BODY END
+ 
+   finalize_intrinsic_block (ctx, fndecl);
+   return fndecl;
+ }
+ 
+ // Shared inner implementation for cttz and cttz_nonzero.
+ //
+ // nonzero=false → cttz: cttz(0) is well-defined in Rust and must return
+ //   bit_size, but __builtin_ctz*(0) is undefined behaviour in C, so an
+ //   explicit arg==0 guard is emitted.
+ //
+ // nonzero=true → cttz_nonzero: the caller guarantees arg != 0 (passing 0
+ //   is immediate UB in Rust), so the zero guard is omitted entirely.
+ static tree
+ cttz_handler (Context *ctx, TyTy::FnType *fntype, bool nonzero)
+ {
+   rust_assert (fntype->get_params ().size () == 1);
+ 
+   tree lookup = NULL_TREE;
+   if (check_for_cached_intrinsic (ctx, fntype, &lookup))
+     return lookup;
+ 
+   auto fndecl = compile_intrinsic_function (ctx, fntype);
+ 
+   std::vector<Bvariable *> param_vars;
+   compile_fn_params (ctx, fntype, fndecl, &param_vars);
+ 
+   auto arg_param = param_vars.at (0);
+   if (!Backend::function_set_parameters (fndecl, param_vars))
+     return error_mark_node;
+ 
+   rust_assert (fntype->get_num_substitutions () == 1);
+   auto *monomorphized_type
+     = fntype->get_substs ().at (0).get_param_ty ()->resolve ();
+   if (!check_for_basic_integer_type ("cttz", fntype->get_locus (),
+ 				     monomorphized_type))
+     return error_mark_node;
+ 
+   enter_intrinsic_block (ctx, fndecl);
+ 
+   // BUILTIN cttz FN BODY BEGIN
+   auto locus = fntype->get_locus ();
+   auto arg_expr = Backend::var_expression (arg_param, locus);
+   tree arg_type = TREE_TYPE (arg_expr);
+   unsigned bit_size = TYPE_PRECISION (arg_type);
+ 
+   // Convert signed types to their same-width unsigned equivalent before
+   // widening.  For cttz this is not strictly required for correctness (sign
+   // extension fills high bits with 1s, which does not alter the trailing-zero
+   // count at the low end), but it avoids relying on signed-integer
+   // representations and keeps the approach consistent with ctlz.
+   tree unsigned_type
+     = !TYPE_UNSIGNED (arg_type) ? unsigned_type_for (arg_type) : arg_type;
+   tree unsigned_arg = fold_convert (unsigned_type, arg_expr);
+ 
+   // Pick the narrowest GCC ctz builtin whose operand type is wide enough to
+   // hold bit_size bits.  Unlike ctlz, no diff adjustment is needed: widening
+   // a value zero-extends it (fills the added high bits with 0s), which does
+   // not introduce new trailing zeros at the low end.
+   //
+   // Example: cttz(0b00001000_u8) = 3
+   //   Widened to u32: 0x00000008.  __builtin_ctz(0x00000008) = 3.
+   //
+   // TODO: 128-bit integers are not yet handled.
+   unsigned int_prec = TYPE_PRECISION (unsigned_type_node);
+   unsigned long_prec = TYPE_PRECISION (long_unsigned_type_node);
+   unsigned longlong_prec = TYPE_PRECISION (long_long_unsigned_type_node);
+ 
+   const char *builtin_name = nullptr;
+   tree cast_type = NULL_TREE;
+ 
+   if (bit_size <= int_prec)
+     {
+       // Fits in unsigned int: covers 8/16/32-bit integers on most targets.
+       builtin_name = "__builtin_ctz";
+       cast_type = unsigned_type_node;
+     }
+   else if (bit_size <= long_prec)
+     {
+       // Fits in unsigned long but not unsigned int.
+       builtin_name = "__builtin_ctzl";
+       cast_type = long_unsigned_type_node;
+     }
+   else if (bit_size <= longlong_prec)
+     {
+       // Fits in unsigned long long but not unsigned long.
+       builtin_name = "__builtin_ctzll";
+       cast_type = long_long_unsigned_type_node;
+     }
+   else
+     {
+       rust_sorry_at (locus, "cttz for %u-bit integers is not yet implemented",
+ 		     bit_size);
+       return error_mark_node;
+     }
+ 
+   tree call_arg = fold_convert (cast_type, unsigned_arg);
+ 
+   tree builtin_decl = error_mark_node;
+   BuiltinsContext::get ().lookup_simple_builtin (builtin_name, &builtin_decl);
+   rust_assert (builtin_decl != error_mark_node);
+ 
+   tree builtin_fn = build_fold_addr_expr_loc (locus, builtin_decl);
+   tree ctz_expr
+     = Backend::call_expression (builtin_fn, {call_arg}, nullptr, locus);
+ 
+   ctz_expr = fold_convert (uint32_type_node, ctz_expr);
+ 
+   tree final_expr;
+   if (!nonzero)
+     {
+       // cttz(0) must return bit_size per the Rust reference.
+       // We cannot pass 0 to __builtin_ctz* (UB), so emit:
+       //   arg == 0 ? bit_size : ctz_expr
+       tree zero = build_int_cst (arg_type, 0);
+       tree cmp = fold_build2 (EQ_EXPR, boolean_type_node, arg_expr, zero);
+       tree width_cst = build_int_cst (uint32_type_node, bit_size);
+       final_expr
+ 	= fold_build3 (COND_EXPR, uint32_type_node, cmp, width_cst, ctz_expr);
+     }
+   else
+     {
+       // cttz_nonzero: arg != 0 is guaranteed by the caller, no guard needed.
+       final_expr = ctz_expr;
+     }
+ 
+   tree result = fold_convert (TREE_TYPE (DECL_RESULT (fndecl)), final_expr);
+   auto return_stmt = Backend::return_statement (fndecl, result, locus);
+   ctx->add_statement (return_stmt);
+   // BUILTIN cttz FN BODY END
+ 
+   finalize_intrinsic_block (ctx, fndecl);
+   return fndecl;
+ }
+ 
  } // namespace inner
  
  const HandlerBuilder
*************** bswap_handler (Context *ctx, TyTy::FnTyp
*** 1530,1535 ****
--- 1805,1834 ----
    return fndecl;
  }
  
+ tree
+ ctlz_handler (Context *ctx, TyTy::FnType *fntype)
+ {
+   return inner::ctlz_handler (ctx, fntype, false);
+ }
+ 
+ tree
+ ctlz_nonzero_handler (Context *ctx, TyTy::FnType *fntype)
+ {
+   return inner::ctlz_handler (ctx, fntype, true);
+ }
+ 
+ tree
+ cttz_handler (Context *ctx, TyTy::FnType *fntype)
+ {
+   return inner::cttz_handler (ctx, fntype, false);
+ }
+ 
+ tree
+ cttz_nonzero_handler (Context *ctx, TyTy::FnType *fntype)
+ {
+   return inner::cttz_handler (ctx, fntype, true);
+ }
+ 
  } // namespace handlers
  } // namespace Compile
  } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/backend/rust-intrinsic-handlers.h gcc-16-20260419/gcc/rust/backend/rust-intrinsic-handlers.h
*** gcc-16-20260412/gcc/rust/backend/rust-intrinsic-handlers.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/backend/rust-intrinsic-handlers.h	Sun Apr 19 22:32:07 2026
*************** tree assume (Context *ctx, TyTy::FnType
*** 65,70 ****
--- 65,74 ----
  tree discriminant_value (Context *ctx, TyTy::FnType *fntype);
  tree variant_count (Context *ctx, TyTy::FnType *fntype);
  tree bswap_handler (Context *ctx, TyTy::FnType *fntype);
+ tree ctlz_handler (Context *ctx, TyTy::FnType *fntype);
+ tree ctlz_nonzero_handler (Context *ctx, TyTy::FnType *fntype);
+ tree cttz_handler (Context *ctx, TyTy::FnType *fntype);
+ tree cttz_nonzero_handler (Context *ctx, TyTy::FnType *fntype);
  
  tree prefetch_data (Context *ctx, TyTy::FnType *fntype, Prefetch kind);
  
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/feature/rust-feature-gate.cc gcc-16-20260419/gcc/rust/checks/errors/feature/rust-feature-gate.cc
*** gcc-16-20260412/gcc/rust/checks/errors/feature/rust-feature-gate.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/feature/rust-feature-gate.cc	Sun Apr 19 22:32:07 2026
*************** FeatureGate::visit (AST::Crate &crate)
*** 63,69 ****
        rust_error_at (locus, ErrorCode::E0635, "unknown feature %qs",
  		     feature.c_str ());
      }
!   check_no_core_attribute (crate.inner_attrs);
  }
  
  void
--- 63,79 ----
        rust_error_at (locus, ErrorCode::E0635, "unknown feature %qs",
  		     feature.c_str ());
      }
!   for (const auto &attribute : crate.inner_attrs)
!     {
!       check_no_core_attribute (attribute);
! 
!       if (attribute.get_path ().as_string ()
! 	  == Values::Attributes::COMPILER_BUILTINS)
! 	gate (Feature::Name::COMPILER_BUILTINS, attribute.get_locus (),
! 	      "the #[compiler_builtins] attribute is used to identify the "
! 	      "compiler_builtins crate which contains compiler-rt intrinsics "
! 	      "and will never be stable");
!     }
  }
  
  void
*************** FeatureGate::visit (AST::ExternBlock &bl
*** 110,124 ****
  }
  
  void
! FeatureGate::check_no_core_attribute (
!   const std::vector<AST::Attribute> &attributes)
  {
!   for (const AST::Attribute &attr : attributes)
!     {
!       if (attr.get_path ().as_string () == Values::Attributes::NO_CORE)
! 	gate (Feature::Name::NO_CORE, attr.get_locus (),
! 	      "no_core is experimental");
!     }
  }
  
  void
--- 120,130 ----
  }
  
  void
! FeatureGate::check_no_core_attribute (const AST::Attribute &attribute)
  {
!   if (attribute.get_path ().as_string () == Values::Attributes::NO_CORE)
!     gate (Feature::Name::NO_CORE, attribute.get_locus (),
! 	  "no_core is experimental");
  }
  
  void
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/feature/rust-feature-gate.h gcc-16-20260419/gcc/rust/checks/errors/feature/rust-feature-gate.h
*** gcc-16-20260412/gcc/rust/checks/errors/feature/rust-feature-gate.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/feature/rust-feature-gate.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 54,60 ****
  
  private:
    void gate (Feature::Name name, location_t loc, const std::string &error_msg);
!   void check_no_core_attribute (const std::vector<AST::Attribute> &attributes);
    void check_rustc_attri (const std::vector<AST::Attribute> &attributes);
    void
    check_may_dangle_attribute (const std::vector<AST::Attribute> &attributes);
--- 54,60 ----
  
  private:
    void gate (Feature::Name name, location_t loc, const std::string &error_msg);
!   void check_no_core_attribute (const AST::Attribute &attribute);
    void check_rustc_attri (const std::vector<AST::Attribute> &attributes);
    void
    check_may_dangle_attribute (const std::vector<AST::Attribute> &attributes);
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-ast-validation.cc gcc-16-20260419/gcc/rust/checks/errors/rust-ast-validation.cc
*** gcc-16-20260412/gcc/rust/checks/errors/rust-ast-validation.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/rust-ast-validation.cc	Sun Apr 19 22:32:07 2026
*************** void
*** 77,82 ****
--- 77,87 ----
  ASTValidation::visit (AST::Function &function)
  {
    const auto &qualifiers = function.get_qualifiers ();
+   if (qualifiers.is_default () && ctx.peek () != Kind::INHERENT_IMPL
+       && ctx.peek () != Kind::TRAIT_IMPL)
+     rust_error_at (
+       function.get_locus (),
+       "%<default%> is only allowed on items within %<impl%> blocks");
    if (qualifiers.is_async () && qualifiers.is_const ())
      rust_error_at (function.get_locus (),
  		   "functions cannot be both %<const%> and %<async%>");
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-attribute-checker.cc gcc-16-20260419/gcc/rust/checks/errors/rust-attribute-checker.cc
*** gcc-16-20260412/gcc/rust/checks/errors/rust-attribute-checker.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/rust/checks/errors/rust-attribute-checker.cc	Sun Apr 19 22:32:07 2026
***************
*** 0 ****
--- 1,773 ----
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+ // This file is part of GCC.
+ 
+ // GCC 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.
+ 
+ // GCC 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.
+ 
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #include "rust-attribute-checker.h"
+ #include "rust-attributes.h"
+ #include "rust-attribute-values.h"
+ #include "rust-diagnostics.h"
+ #include "rust-session-manager.h"
+ 
+ namespace Rust {
+ namespace Analysis {
+ 
+ using Attrs = Values::Attributes;
+ 
+ static bool
+ is_proc_macro_type (const AST::Attribute &attribute)
+ {
+   auto result_opt = lookup_builtin (attribute);
+   if (!result_opt.has_value ())
+     return false;
+   auto result = result_opt.value ();
+ 
+   auto name = result.name;
+   return name == Attrs::PROC_MACRO || name == Attrs::PROC_MACRO_DERIVE
+ 	 || name == Attrs::PROC_MACRO_ATTRIBUTE;
+ }
+ 
+ // Emit an error when one encountered attribute is either #[proc_macro],
+ // #[proc_macro_attribute] or #[proc_macro_derive]
+ static void
+ check_proc_macro_non_function (const AST::Attribute &attr)
+ {
+   if (is_proc_macro_type (attr))
+     rust_error_at (attr.get_locus (),
+ 		   "the %<#[%s]%> attribute may only be used on bare functions",
+ 		   attr.get_path ().get_segments ()[0].as_string ().c_str ());
+ }
+ 
+ // Emit an error when one attribute is either proc_macro, proc_macro_attribute
+ // or proc_macro_derive
+ static void
+ check_proc_macro_non_root (const AST::Attribute &attr, location_t loc)
+ {
+   if (is_proc_macro_type (attr))
+     {
+       rust_error_at (
+ 	loc,
+ 	"functions tagged with %<#[%s]%> must currently "
+ 	"reside in the root of the crate",
+ 	attr.get_path ().get_segments ().at (0).as_string ().c_str ());
+     }
+ }
+ 
+ AttributeChecker::AttributeChecker () {}
+ 
+ void
+ AttributeChecker::go (AST::Crate &crate)
+ {
+   visit (crate);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::Attribute &attribute)
+ {
+   auto &session = Session::get_instance ();
+   if (attribute.get_path () == Values::Attributes::CFG_ATTR)
+     {
+       if (!attribute.is_parsed_to_meta_item ())
+ 	attribute.parse_attr_to_meta_item ();
+       if (!attribute.check_cfg_predicate (session))
+ 	return; // Do not emit errors for attribute that'll get stripped.
+     }
+ 
+   AST::DefaultASTVisitor::visit (attribute);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::Token &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::DelimTokenTree &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::IdentifierExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::Lifetime &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::LifetimeParam &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ConstGenericParam &)
+ {}
+ 
+ // rust-path.h
+ void
+ AttributeChecker::visit (AST::PathInExpression &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TypePathSegment &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TypePathSegmentGeneric &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TypePathSegmentFunction &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TypePath &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::QualifiedPathInExpression &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::QualifiedPathInType &)
+ {}
+ 
+ // rust-expr.h
+ void
+ AttributeChecker::visit (AST::LiteralExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::AttrInputLiteral &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MetaItemLitExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MetaItemPathExpr &attribute)
+ {
+   if (!attribute.get_expr ().is_literal ())
+     {
+       rust_error_at (attribute.get_expr ().get_locus (),
+ 		     "malformed %<path%> attribute input");
+       rust_inform (attribute.get_expr ().get_locus (),
+ 		   "must be of the form: %<#[path = \"file\"]%>");
+     }
+ }
+ 
+ void
+ AttributeChecker::visit (AST::BorrowExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::DereferenceExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ErrorPropagationExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::NegationExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ArithmeticOrLogicalExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ComparisonExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::LazyBooleanExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TypeCastExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::AssignmentExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::CompoundAssignmentExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::GroupedExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ArrayElemsValues &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ArrayElemsCopied &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ArrayExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ArrayIndexExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TupleExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TupleIndexExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructExprStruct &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructExprFieldIdentifier &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructExprFieldIdentifierValue &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructExprFieldIndexValue &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructExprStructFields &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructExprStructBase &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::CallExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MethodCallExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::FieldAccessExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ClosureExprInner &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::BlockExpr &expr)
+ {
+   for (auto &stmt : expr.get_statements ())
+     {
+       if (stmt->get_stmt_kind () == AST::Stmt::Kind::Item)
+ 	{
+ 	  // Non owning pointer, let it go out of scope
+ 	  auto item = static_cast<AST::Item *> (stmt.get ());
+ 	  for (auto &attr : item->get_outer_attrs ())
+ 	    check_proc_macro_non_root (attr, item->get_locus ());
+ 	}
+     }
+   AST::DefaultASTVisitor::visit (expr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::ClosureExprInnerTyped &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ContinueExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::BreakExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangeFromToExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangeFromExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangeToExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangeFullExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangeFromToInclExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangeToInclExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ReturnExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::LoopExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::WhileLoopExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::WhileLetLoopExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ForLoopExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::IfExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::IfExprConseqElse &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::IfLetExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::IfLetExprConseqElse &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MatchExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::AwaitExpr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::AsyncBlockExpr &)
+ {}
+ 
+ // rust-item.h
+ void
+ AttributeChecker::visit (AST::TypeParam &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::LifetimeWhereClauseItem &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TypeBoundWhereClauseItem &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::Module &module)
+ {
+   for (auto &attr : module.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ 
+   for (auto &item : module.get_items ())
+     for (auto &attr : item->get_outer_attrs ())
+       check_proc_macro_non_root (attr, item->get_locus ());
+ 
+   AST::DefaultASTVisitor::visit (module);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::ExternCrate &crate)
+ {
+   for (auto &attr : crate.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::UseTreeGlob &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::UseTreeList &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::UseTreeRebind &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::UseDeclaration &declaration)
+ {
+   for (auto &attr : declaration.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::Function &fun)
+ {
+   if (fun.has_body ())
+     fun.get_definition ().value ()->accept_vis (*this);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::TypeAlias &alias)
+ {
+   for (auto &attr : alias.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::StructStruct &struct_item)
+ {
+   for (auto &attr : struct_item.get_outer_attrs ())
+     {
+       check_proc_macro_non_function (attr);
+     }
+ 
+   AST::DefaultASTVisitor::visit (struct_item);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::TupleStruct &tuplestruct)
+ {
+   for (auto &attr : tuplestruct.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::EnumItem &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::EnumItemTuple &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::EnumItemStruct &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::EnumItemDiscriminant &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::Enum &enumeration)
+ {
+   for (auto &attr : enumeration.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::Union &u)
+ {
+   for (auto &attr : u.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::ConstantItem &item)
+ {
+   for (auto &attr : item.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::StaticItem &item)
+ {
+   for (auto &attr : item.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::TraitItemType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::Trait &trait)
+ {
+   for (auto &attr : trait.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ 
+   AST::DefaultASTVisitor::visit (trait);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::InherentImpl &impl)
+ {
+   for (auto &attr : impl.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ 
+   AST::DefaultASTVisitor::visit (impl);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::TraitImpl &impl)
+ {
+   for (auto &attr : impl.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ 
+   AST::DefaultASTVisitor::visit (impl);
+ }
+ 
+ void
+ AttributeChecker::visit (AST::ExternalTypeItem &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ExternalStaticItem &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ExternBlock &block)
+ {
+   for (auto &attr : block.get_outer_attrs ())
+     check_proc_macro_non_function (attr);
+ }
+ 
+ // rust-macro.h
+ void
+ AttributeChecker::visit (AST::MacroMatchFragment &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MacroMatchRepetition &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MacroMatcher &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MacroRulesDefinition &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MacroInvocation &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MetaItemPath &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MetaWord &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MetaNameValueStr &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MetaListPaths &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::MetaListNameValueStr &)
+ {}
+ 
+ // rust-pattern.h
+ void
+ AttributeChecker::visit (AST::LiteralPattern &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::IdentifierPattern &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::WildcardPattern &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RestPattern &)
+ {}
+ 
+ // void AttributeChecker::visit(RangePatternBound& ){}
+ 
+ void
+ AttributeChecker::visit (AST::RangePatternBoundLiteral &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangePatternBoundPath &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangePatternBoundQualPath &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RangePattern &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ReferencePattern &)
+ {}
+ 
+ // void AttributeChecker::visit(StructPatternField& ){}
+ 
+ void
+ AttributeChecker::visit (AST::StructPatternFieldTuplePat &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructPatternFieldIdentPat &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructPatternFieldIdent &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::StructPattern &)
+ {}
+ 
+ // void AttributeChecker::visit(TupleStructItems& ){}
+ 
+ void
+ AttributeChecker::visit (AST::TupleStructItemsNoRest &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TupleStructItemsHasRest &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TupleStructPattern &)
+ {}
+ 
+ // void AttributeChecker::visit(TuplePatternItems& ){}
+ 
+ void
+ AttributeChecker::visit (AST::TuplePatternItemsNoRest &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TuplePatternItemsHasRest &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TuplePattern &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::GroupedPattern &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::SlicePattern &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::AltPattern &)
+ {}
+ 
+ // rust-stmt.h
+ void
+ AttributeChecker::visit (AST::EmptyStmt &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::LetStmt &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ExprStmt &)
+ {}
+ 
+ // rust-type.h
+ void
+ AttributeChecker::visit (AST::TraitBound &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ImplTraitType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TraitObjectType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ParenthesisedType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ImplTraitTypeOneBound &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TraitObjectTypeOneBound &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::TupleType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::NeverType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::RawPointerType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ReferenceType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::ArrayType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::SliceType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::InferredType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::BareFunctionType &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::SelfParam &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::VariadicParam &)
+ {}
+ 
+ void
+ AttributeChecker::visit (AST::FunctionParam &)
+ {}
+ 
+ } // namespace Analysis
+ } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-attribute-checker.h gcc-16-20260419/gcc/rust/checks/errors/rust-attribute-checker.h
*** gcc-16-20260412/gcc/rust/checks/errors/rust-attribute-checker.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/rust/checks/errors/rust-attribute-checker.h	Sun Apr 19 22:32:07 2026
***************
*** 0 ****
--- 1,224 ----
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+ // This file is part of GCC.
+ 
+ // GCC 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.
+ 
+ // GCC 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.
+ 
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #ifndef RUST_ATTRIBUTE_CHECKER_H
+ #define RUST_ATTRIBUTE_CHECKER_H
+ 
+ #include "rust-ast-visitor.h"
+ 
+ namespace Rust {
+ namespace Analysis {
+ 
+ /**
+  * Checks the validity of various pre-expansion attributes.
+  * The goal of this visitor is to make sure that attributes that are used for
+  * macro expansion are applied in allowed contexts and correctly used.
+  *
+  * Examples:
+  * - A proc macro derive attribute `#[derive(Something)]`shall not be used on a
+  * function.
+  */
+ class AttributeChecker : public AST::DefaultASTVisitor
+ {
+ public:
+   AttributeChecker ();
+ 
+   /**
+    * Check all the attributes of all the items of a crate
+    */
+   void go (AST::Crate &crate);
+ 
+ private:
+   using AST::DefaultASTVisitor::visit;
+ 
+   /* Check the validity of an inner attribute */
+   void check_inner_attribute (const AST::Attribute &attribute);
+ 
+   /* Check the validity of a given attribute */
+   // rust-ast.h
+   void visit (AST::Attribute &attribute) override;
+   void visit (AST::Token &tok) override;
+   void visit (AST::DelimTokenTree &delim_tok_tree) override;
+   void visit (AST::IdentifierExpr &ident_expr) override;
+   void visit (AST::Lifetime &lifetime) override;
+   void visit (AST::LifetimeParam &lifetime_param) override;
+   void visit (AST::ConstGenericParam &const_param) override;
+ 
+   // rust-path.h
+   void visit (AST::PathInExpression &path) override;
+   void visit (AST::TypePathSegment &segment) override;
+   void visit (AST::TypePathSegmentGeneric &segment) override;
+   void visit (AST::TypePathSegmentFunction &segment) override;
+   void visit (AST::TypePath &path) override;
+   void visit (AST::QualifiedPathInExpression &path) override;
+   void visit (AST::QualifiedPathInType &path) override;
+ 
+   // rust-expr.h
+   void visit (AST::LiteralExpr &expr) override;
+   void visit (AST::AttrInputLiteral &attr_input) override;
+   void visit (AST::MetaItemLitExpr &meta_item) override;
+   void visit (AST::MetaItemPathExpr &meta_item) override;
+   void visit (AST::BorrowExpr &expr) override;
+   void visit (AST::DereferenceExpr &expr) override;
+   void visit (AST::ErrorPropagationExpr &expr) override;
+   void visit (AST::NegationExpr &expr) override;
+   void visit (AST::ArithmeticOrLogicalExpr &expr) override;
+   void visit (AST::ComparisonExpr &expr) override;
+   void visit (AST::LazyBooleanExpr &expr) override;
+   void visit (AST::TypeCastExpr &expr) override;
+   void visit (AST::AssignmentExpr &expr) override;
+   void visit (AST::CompoundAssignmentExpr &expr) override;
+   void visit (AST::GroupedExpr &expr) override;
+   void visit (AST::ArrayElemsValues &elems) override;
+   void visit (AST::ArrayElemsCopied &elems) override;
+   void visit (AST::ArrayExpr &expr) override;
+   void visit (AST::ArrayIndexExpr &expr) override;
+   void visit (AST::TupleExpr &expr) override;
+   void visit (AST::TupleIndexExpr &expr) override;
+   void visit (AST::StructExprStruct &expr) override;
+   void visit (AST::StructExprFieldIdentifier &field) override;
+   void visit (AST::StructExprFieldIdentifierValue &field) override;
+   void visit (AST::StructExprFieldIndexValue &field) override;
+   void visit (AST::StructExprStructFields &expr) override;
+   void visit (AST::StructExprStructBase &expr) override;
+   void visit (AST::CallExpr &expr) override;
+   void visit (AST::MethodCallExpr &expr) override;
+   void visit (AST::FieldAccessExpr &expr) override;
+   void visit (AST::ClosureExprInner &expr) override;
+   void visit (AST::BlockExpr &expr) override;
+   void visit (AST::ClosureExprInnerTyped &expr) override;
+   void visit (AST::ContinueExpr &expr) override;
+   void visit (AST::BreakExpr &expr) override;
+   void visit (AST::RangeFromToExpr &expr) override;
+   void visit (AST::RangeFromExpr &expr) override;
+   void visit (AST::RangeToExpr &expr) override;
+   void visit (AST::RangeFullExpr &expr) override;
+   void visit (AST::RangeFromToInclExpr &expr) override;
+   void visit (AST::RangeToInclExpr &expr) override;
+   void visit (AST::ReturnExpr &expr) override;
+   void visit (AST::LoopExpr &expr) override;
+   void visit (AST::WhileLoopExpr &expr) override;
+   void visit (AST::WhileLetLoopExpr &expr) override;
+   void visit (AST::ForLoopExpr &expr) override;
+   void visit (AST::IfExpr &expr) override;
+   void visit (AST::IfExprConseqElse &expr) override;
+   void visit (AST::IfLetExpr &expr) override;
+   void visit (AST::IfLetExprConseqElse &expr) override;
+   void visit (AST::MatchExpr &expr) override;
+   void visit (AST::AwaitExpr &expr) override;
+   void visit (AST::AsyncBlockExpr &expr) override;
+ 
+   // rust-item.h
+   void visit (AST::TypeParam &param) override;
+   void visit (AST::LifetimeWhereClauseItem &item) override;
+   void visit (AST::TypeBoundWhereClauseItem &item) override;
+   void visit (AST::Module &module) override;
+   void visit (AST::ExternCrate &crate) override;
+   void visit (AST::UseTreeGlob &use_tree) override;
+   void visit (AST::UseTreeList &use_tree) override;
+   void visit (AST::UseTreeRebind &use_tree) override;
+   void visit (AST::UseDeclaration &use_decl) override;
+   void visit (AST::Function &function) override;
+   void visit (AST::TypeAlias &type_alias) override;
+   void visit (AST::StructStruct &struct_item) override;
+   void visit (AST::TupleStruct &tuple_struct) override;
+   void visit (AST::EnumItem &item) override;
+   void visit (AST::EnumItemTuple &item) override;
+   void visit (AST::EnumItemStruct &item) override;
+   void visit (AST::EnumItemDiscriminant &item) override;
+   void visit (AST::Enum &enum_item) override;
+   void visit (AST::Union &union_item) override;
+   void visit (AST::ConstantItem &const_item) override;
+   void visit (AST::StaticItem &static_item) override;
+   void visit (AST::TraitItemType &item) override;
+   void visit (AST::Trait &trait) override;
+   void visit (AST::InherentImpl &impl) override;
+   void visit (AST::TraitImpl &impl) override;
+   void visit (AST::ExternalTypeItem &item) override;
+   void visit (AST::ExternalStaticItem &item) override;
+   void visit (AST::ExternBlock &block) override;
+ 
+   // rust-macro.h
+   void visit (AST::MacroMatchFragment &match) override;
+   void visit (AST::MacroMatchRepetition &match) override;
+   void visit (AST::MacroMatcher &matcher) override;
+   void visit (AST::MacroRulesDefinition &rules_def) override;
+   void visit (AST::MacroInvocation &macro_invoc) override;
+   void visit (AST::MetaItemPath &meta_item) override;
+   void visit (AST::MetaWord &meta_item) override;
+   void visit (AST::MetaNameValueStr &meta_item) override;
+   void visit (AST::MetaListPaths &meta_item) override;
+   void visit (AST::MetaListNameValueStr &meta_item) override;
+ 
+   // rust-pattern.h
+   void visit (AST::LiteralPattern &pattern) override;
+   void visit (AST::IdentifierPattern &pattern) override;
+   void visit (AST::WildcardPattern &pattern) override;
+   void visit (AST::RestPattern &pattern) override;
+   // void visit(RangePatternBound& bound) override;
+   void visit (AST::RangePatternBoundLiteral &bound) override;
+   void visit (AST::RangePatternBoundPath &bound) override;
+   void visit (AST::RangePatternBoundQualPath &bound) override;
+   void visit (AST::RangePattern &pattern) override;
+   void visit (AST::ReferencePattern &pattern) override;
+   // void visit(StructPatternField& field) override;
+   void visit (AST::StructPatternFieldTuplePat &field) override;
+   void visit (AST::StructPatternFieldIdentPat &field) override;
+   void visit (AST::StructPatternFieldIdent &field) override;
+   void visit (AST::StructPattern &pattern) override;
+   // void visit(TupleStructItems& tuple_items) override;
+   void visit (AST::TupleStructItemsNoRest &tuple_items) override;
+   void visit (AST::TupleStructItemsHasRest &tuple_items) override;
+   void visit (AST::TupleStructPattern &pattern) override;
+   // void visit(TuplePatternItems& tuple_items) override;
+   void visit (AST::TuplePatternItemsNoRest &tuple_items) override;
+   void visit (AST::TuplePatternItemsHasRest &tuple_items) override;
+   void visit (AST::TuplePattern &pattern) override;
+   void visit (AST::GroupedPattern &pattern) override;
+   void visit (AST::SlicePattern &pattern) override;
+   void visit (AST::AltPattern &pattern) override;
+ 
+   // rust-stmt.h
+   void visit (AST::EmptyStmt &stmt) override;
+   void visit (AST::LetStmt &stmt) override;
+   void visit (AST::ExprStmt &stmt) override;
+ 
+   // rust-type.h
+   void visit (AST::TraitBound &bound) override;
+   void visit (AST::ImplTraitType &type) override;
+   void visit (AST::TraitObjectType &type) override;
+   void visit (AST::ParenthesisedType &type) override;
+   void visit (AST::ImplTraitTypeOneBound &type) override;
+   void visit (AST::TraitObjectTypeOneBound &type) override;
+   void visit (AST::TupleType &type) override;
+   void visit (AST::NeverType &type) override;
+   void visit (AST::RawPointerType &type) override;
+   void visit (AST::ReferenceType &type) override;
+   void visit (AST::ArrayType &type) override;
+   void visit (AST::SliceType &type) override;
+   void visit (AST::InferredType &type) override;
+   void visit (AST::BareFunctionType &type) override;
+   void visit (AST::FunctionParam &param) override;
+   void visit (AST::VariadicParam &param) override;
+   void visit (AST::SelfParam &param) override;
+ };
+ 
+ } // namespace Analysis
+ } // namespace Rust
+ 
+ #endif /* ! RUST_ATTRIBUTE_CHECKER_H */
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-builtin-attribute-checker.cc gcc-16-20260419/gcc/rust/checks/errors/rust-builtin-attribute-checker.cc
*** gcc-16-20260412/gcc/rust/checks/errors/rust-builtin-attribute-checker.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/rust/checks/errors/rust-builtin-attribute-checker.cc	Sun Apr 19 22:32:07 2026
***************
*** 0 ****
--- 1,581 ----
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+ // This file is part of GCC.
+ 
+ // GCC 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.
+ 
+ // GCC 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.
+ 
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #include "rust-builtin-attribute-checker.h"
+ #include "optional.h"
+ #include "rust-attributes.h"
+ #include "rust-attribute-values.h"
+ #include "rust-session-manager.h"
+ 
+ namespace Rust {
+ namespace Analysis {
+ 
+ using Attrs = Values::Attributes;
+ 
+ void
+ check_inner_attribute (const AST::Attribute &attribute)
+ {
+   auto result_opt = lookup_builtin (attribute);
+   if (!result_opt.has_value ())
+     return;
+   auto result = result_opt.value ();
+ 
+   if (Attributes::valid_outer_attribute (result.name))
+     rust_error_at (attribute.get_locus (),
+ 		   "attribute cannot be used at crate level");
+ }
+ 
+ /**
+  * Check that the string given to #[doc(alias = ...)] or #[doc(alias(...))] is
+  * valid.
+  *
+  * This means no whitespace characters other than spaces and no quoting
+  * characters.
+  */
+ static void
+ check_doc_alias (const std::string &alias_input, const location_t locus)
+ {
+   // FIXME: The locus here is for the whole attribute. Can we get the locus
+   // of the alias input instead?
+   for (auto c : alias_input)
+     if ((ISSPACE (c) && c != ' ') || c == '\'' || c == '\"')
+       {
+ 	auto to_print = std::string (1, c);
+ 	switch (c)
+ 	  {
+ 	  case '\n':
+ 	    to_print = "\\n";
+ 	    break;
+ 	  case '\t':
+ 	    to_print = "\\t";
+ 	    break;
+ 	  default:
+ 	    break;
+ 	  }
+ 	rust_error_at (locus,
+ 		       "invalid character used in %<#[doc(alias)]%> input: %qs",
+ 		       to_print.c_str ());
+       }
+ 
+   if (alias_input.empty ())
+     return;
+ 
+   if (alias_input.front () == ' ' || alias_input.back () == ' ')
+     rust_error_at (locus,
+ 		   "%<#[doc(alias)]%> input cannot start or end with a space");
+ }
+ 
+ // This namespace contains handlers for the builtin attribute checker,
+ // those handlers must verify the attribute internal structure and emit the
+ // appropriate error message if the structure is incorrect.
+ //
+ // They DO NOT check the attribute validity on the parent item.
+ namespace handlers {
+ 
+ void
+ doc (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     {
+       rust_error_at (
+ 	attribute.get_locus (),
+ 	"valid forms for the attribute are "
+ 	"%<#[doc(hidden|inline|...)]%> and %<#[doc = \" string \"]%>");
+       return;
+     }
+ 
+   switch (attribute.get_attr_input ().get_attr_input_type ())
+     {
+     case AST::AttrInput::LITERAL:
+     case AST::AttrInput::META_ITEM:
+     case AST::AttrInput::EXPR:
+       break;
+       // FIXME: Handle them as well
+ 
+     case AST::AttrInput::TOKEN_TREE:
+       {
+ 	// FIXME: This doesn't check for #[doc(alias(...))]
+ 	const auto &option = static_cast<const AST::DelimTokenTree &> (
+ 	  attribute.get_attr_input ());
+ 	auto *meta_item = option.parse_to_meta_item ();
+ 
+ 	for (auto &item : meta_item->get_items ())
+ 	  {
+ 	    if (item->is_key_value_pair ())
+ 	      {
+ 		auto name_value
+ 		  = static_cast<AST::MetaNameValueStr *> (item.get ())
+ 		      ->get_name_value_pair ();
+ 
+ 		// FIXME: Check for other stuff than #[doc(alias = ...)]
+ 		if (name_value.first.as_string () == "alias")
+ 		  check_doc_alias (name_value.second, attribute.get_locus ());
+ 	      }
+ 	  }
+ 	break;
+       }
+     }
+ }
+ 
+ void
+ deprecated (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     return;
+ 
+   const auto &input = attribute.get_attr_input ();
+ 
+   if (input.get_attr_input_type () != AST::AttrInput::META_ITEM)
+     return;
+ 
+   auto &meta = static_cast<const AST::AttrInputMetaItemContainer &> (input);
+ 
+   for (auto &current : meta.get_items ())
+     {
+       switch (current->get_kind ())
+ 	{
+ 	case AST::MetaItemInner::Kind::MetaItem:
+ 	  {
+ 	    auto *meta_item = static_cast<AST::MetaItem *> (current.get ());
+ 
+ 	    switch (meta_item->get_item_kind ())
+ 	      {
+ 	      case AST::MetaItem::ItemKind::NameValueStr:
+ 		{
+ 		  auto *nv = static_cast<AST::MetaNameValueStr *> (meta_item);
+ 
+ 		  const std::string key = nv->get_name ().as_string ();
+ 
+ 		  if (key != "since" && key != "note")
+ 		    {
+ 		      rust_error_at (nv->get_locus (), "unknown meta item %qs",
+ 				     key.c_str ());
+ 		      rust_inform (nv->get_locus (),
+ 				   "expected one of %<since%>, %<note%>");
+ 		    }
+ 		}
+ 		break;
+ 
+ 	      case AST::MetaItem::ItemKind::Path:
+ 		{
+ 		  // #[deprecated(a,a)]
+ 		  auto *p = static_cast<AST::MetaItemPath *> (meta_item);
+ 
+ 		  std::string ident = p->get_path ().as_string ();
+ 
+ 		  rust_error_at (p->get_locus (), "unknown meta item %qs",
+ 				 ident.c_str ());
+ 		  rust_inform (p->get_locus (),
+ 			       "expected one of %<since%>, %<note%>");
+ 		}
+ 		break;
+ 
+ 	      case AST::MetaItem::ItemKind::Word:
+ 		{
+ 		  // #[deprecated("a")]
+ 		  auto *w = static_cast<AST::MetaWord *> (meta_item);
+ 
+ 		  rust_error_at (
+ 		    w->get_locus (),
+ 		    "item in %<deprecated%> must be a key/value pair");
+ 		}
+ 		break;
+ 
+ 	      case AST::MetaItem::ItemKind::PathExpr:
+ 		{
+ 		  // #[deprecated(since=a)]
+ 		  auto *px = static_cast<AST::MetaItemPathExpr *> (meta_item);
+ 
+ 		  rust_error_at (
+ 		    px->get_locus (),
+ 		    "expected unsuffixed literal or identifier, found %qs",
+ 		    px->get_expr ().as_string ().c_str ());
+ 		}
+ 		break;
+ 
+ 	      case AST::MetaItem::ItemKind::Seq:
+ 	      case AST::MetaItem::ItemKind::ListPaths:
+ 	      case AST::MetaItem::ItemKind::ListNameValueStr:
+ 	      default:
+ 		gcc_unreachable ();
+ 		break;
+ 	      }
+ 	  }
+ 	  break;
+ 
+ 	case AST::MetaItemInner::Kind::LitExpr:
+ 	default:
+ 	  gcc_unreachable ();
+ 	  break;
+ 	}
+     }
+ }
+ 
+ void
+ link_section (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     {
+       rust_error_at (attribute.get_locus (),
+ 		     "malformed %<link_section%> attribute input");
+       rust_inform (attribute.get_locus (),
+ 		   "must be of the form: %<#[link_section = \"name\"]%>");
+     }
+ }
+ 
+ void
+ export_name (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     {
+       rust_error_at (attribute.get_locus (),
+ 		     "malformed %<export_name%> attribute input");
+       rust_inform (attribute.get_locus (),
+ 		   "must be of the form: %<#[export_name = \"name\"]%>");
+       return;
+     }
+ 
+   auto &attr_input = attribute.get_attr_input ();
+   if (attr_input.get_attr_input_type ()
+       == AST::AttrInput::AttrInputType::LITERAL)
+     {
+       auto &literal_expr
+ 	= static_cast<AST::AttrInputLiteral &> (attr_input).get_literal ();
+       auto lit_type = literal_expr.get_lit_type ();
+       switch (lit_type)
+ 	{
+ 	case AST::Literal::LitType::STRING:
+ 	case AST::Literal::LitType::RAW_STRING:
+ 	case AST::Literal::LitType::BYTE_STRING:
+ 	  return;
+ 	default:
+ 	  break;
+ 	}
+     }
+ 
+   rust_error_at (attribute.get_locus (), "attribute must be a string literal");
+ }
+ 
+ void
+ lint (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     {
+       auto name = attribute.get_path ().as_string ();
+       rust_error_at (attribute.get_locus (), "malformed %qs attribute input",
+ 		     name.c_str ());
+       rust_inform (attribute.get_locus (),
+ 		   "must be of the form: %<#[%s(lint1, lint2, ...)]%>",
+ 		   name.c_str ());
+     }
+ }
+ 
+ void
+ link_name (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     {
+       rust_error_at (attribute.get_locus (),
+ 		     "malformed %<link_name%> attribute input");
+       rust_inform (attribute.get_locus (),
+ 		   "must be of the form: %<#[link_name = \"name\"]%>");
+     }
+ }
+ 
+ namespace {
+ void
+ check_crate_type (const AST::Attribute &attribute)
+ {
+   if (!Session::get_instance ().options.is_proc_macro ())
+     {
+       auto name = attribute.get_path ().as_string ();
+ 
+       rust_error_at (attribute.get_locus (),
+ 		     "the %<#[%s]%> attribute is only usable with crates of "
+ 		     "the %<proc-macro%> crate type",
+ 		     name.c_str ());
+     }
+ }
+ } // namespace
+ 
+ static void
+ proc_macro_derive (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     {
+       auto name = attribute.get_path ().as_string ();
+       rust_error_at (attribute.get_locus (), "malformed %qs attribute input",
+ 		     name.c_str ());
+       rust_inform (attribute.get_locus (),
+ 		   "must be of the form: %<#[proc_macro_derive(TraitName, "
+ 		   "/*opt*/ attributes(name1, name2, ...))]%>");
+     }
+   check_crate_type (attribute);
+ }
+ 
+ static void
+ proc_macro (const AST::Attribute &attribute)
+ {
+   check_crate_type (attribute);
+ }
+ 
+ static void
+ target_feature (const AST::Attribute &attribute)
+ {
+   if (!attribute.has_attr_input ())
+     {
+       rust_error_at (attribute.get_locus (),
+ 		     "malformed %<target_feature%> attribute input");
+       rust_inform (attribute.get_locus (),
+ 		   "must be of the form: %<#[target_feature(enable = "
+ 		   "\"name\")]%>");
+     }
+ }
+ 
+ void
+ no_mangle (const AST::Attribute &attribute)
+ {
+   if (attribute.has_attr_input ())
+     {
+       rust_error_at (attribute.get_locus (), ErrorCode::E0754,
+ 		     "malformed %<no_mangle%> attribute input");
+       rust_inform (attribute.get_locus (),
+ 		   "must be of the form: %<#[no_mangle]%>");
+     }
+ }
+ 
+ } // namespace handlers
+ 
+ const std::unordered_map<std::string, std::function<void (AST::Attribute &)>>
+   attribute_checking_handlers
+   = {{Attrs::DOC, handlers::doc},
+      {Attrs::DEPRECATED, handlers::deprecated},
+      {Attrs::LINK_SECTION, handlers::link_section},
+      {Attrs::EXPORT_NAME, handlers::export_name},
+      {Attrs::NO_MANGLE, handlers::no_mangle},
+      {Attrs::ALLOW, handlers::lint},
+      {Attrs::DENY, handlers::lint},
+      {Attrs::WARN, handlers::lint},
+      {Attrs::FORBID, handlers::lint},
+      {Attrs::LINK_NAME, handlers::link_name},
+      {Attrs::PROC_MACRO_DERIVE, handlers::proc_macro_derive},
+      {Attrs::PROC_MACRO, handlers::proc_macro},
+      {Attrs::PROC_MACRO_ATTRIBUTE, handlers::proc_macro},
+      {Attrs::TARGET_FEATURE, handlers::target_feature}};
+ 
+ tl::optional<std::function<void (AST::Attribute &)>>
+ lookup_handler (std::string attr_name)
+ {
+   auto res = attribute_checking_handlers.find (attr_name);
+   if (res != attribute_checking_handlers.cend ())
+     return res->second;
+   return tl::nullopt;
+ }
+ 
+ static void
+ check_no_mangle_function (const AST::Attribute &attribute,
+ 			  const AST::Function &fun)
+ {
+   if (!is_ascii_only (fun.get_function_name ().as_string ()))
+     rust_error_at (fun.get_function_name ().get_locus (),
+ 		   "the %<#[no_mangle]%> attribute requires ASCII identifier");
+ }
+ 
+ /**
+  * Emit an error when an attribute is attached
+  * to an incompatable item type. e.g.:
+  *
+  * #[cold]
+  * struct A(u8, u8);
+  *
+  * Note that "#[derive]" is handled
+  * explicitly in rust-derive.cc
+  */
+ void
+ check_valid_attribute_for_item (const AST::Attribute &attr,
+ 				const AST::Item &item)
+ {
+   if (item.get_item_kind () != AST::Item::Kind::Function
+       && (attr.get_path () == Values::Attributes::TARGET_FEATURE
+ 	  || attr.get_path () == Values::Attributes::COLD
+ 	  || attr.get_path () == Values::Attributes::INLINE))
+     {
+       rust_error_at (attr.get_locus (),
+ 		     "the %<#[%s]%> attribute may only be applied to functions",
+ 		     attr.get_path ().as_string ().c_str ());
+     }
+   else if (attr.get_path () == Values::Attributes::REPR
+ 	   && item.get_item_kind () != AST::Item::Kind::Enum
+ 	   && item.get_item_kind () != AST::Item::Kind::Union
+ 	   && item.get_item_kind () != AST::Item::Kind::Struct)
+     {
+       rust_error_at (attr.get_locus (),
+ 		     "the %<#[%s]%> attribute may only be applied "
+ 		     "to structs, enums and unions",
+ 		     attr.get_path ().as_string ().c_str ());
+     }
+ }
+ 
+ BuiltinAttributeChecker::BuiltinAttributeChecker () {}
+ 
+ void
+ BuiltinAttributeChecker::go (AST::Crate &crate)
+ {
+   visit (crate);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::Crate &crate)
+ {
+   for (auto &attr : crate.get_inner_attrs ())
+     {
+       check_inner_attribute (attr);
+     }
+ 
+   AST::DefaultASTVisitor::visit (crate);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::Attribute &attribute)
+ {
+   lookup_handler (attribute.get_path ().as_string ()).map ([&] (auto handler) {
+     handler (attribute);
+   });
+   AST::DefaultASTVisitor::visit (attribute);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::Module &module)
+ {
+   default_outer_attribute_check (module);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::ExternCrate &extern_crate)
+ {
+   default_outer_attribute_check (extern_crate);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::UseDeclaration &declaration)
+ {
+   default_outer_attribute_check (declaration);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::Function &function)
+ {
+   BuiltinAttrDefinition result;
+   for (auto &attribute : function.get_outer_attrs ())
+     {
+       check_valid_attribute_for_item (attribute, function);
+ 
+       auto result = lookup_builtin (attribute);
+       if (!result)
+ 	return;
+ 
+       if (result->name == Attrs::TARGET_FEATURE)
+ 	{
+ 	  if (!function.get_qualifiers ().is_unsafe ())
+ 	    {
+ 	      rust_error_at (
+ 		attribute.get_locus (),
+ 		"the %<#[target_feature]%> attribute can only be applied "
+ 		"to %<unsafe%> functions");
+ 	    }
+ 	}
+       else if (result->name == Attrs::NO_MANGLE)
+ 	{
+ 	  check_no_mangle_function (attribute, function);
+ 	}
+     }
+ 
+   AST::DefaultASTVisitor::visit (function);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::TypeAlias &alias)
+ {
+   default_outer_attribute_check (alias);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::StructStruct &struct_item)
+ {
+   default_outer_attribute_check (struct_item);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::TupleStruct &tuple_struct)
+ {
+   default_outer_attribute_check (tuple_struct);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::Enum &enumeration)
+ {
+   default_outer_attribute_check (enumeration);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::Union &u)
+ {
+   default_outer_attribute_check (u);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::ConstantItem &item)
+ {
+   default_outer_attribute_check (item);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::StaticItem &item)
+ {
+   for (auto &attr : item.get_outer_attrs ())
+     check_valid_attribute_for_item (attr, item);
+ 
+   AST::DefaultASTVisitor::visit (item);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::Trait &trait)
+ {
+   default_outer_attribute_check (trait);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::InherentImpl &impl)
+ {
+   default_outer_attribute_check (impl);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::TraitImpl &impl)
+ {
+   default_outer_attribute_check (impl);
+ }
+ 
+ void
+ BuiltinAttributeChecker::visit (AST::ExternBlock &block)
+ {
+   default_outer_attribute_check (block);
+ }
+ 
+ } // namespace Analysis
+ } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-builtin-attribute-checker.h gcc-16-20260419/gcc/rust/checks/errors/rust-builtin-attribute-checker.h
*** gcc-16-20260412/gcc/rust/checks/errors/rust-builtin-attribute-checker.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/rust/checks/errors/rust-builtin-attribute-checker.h	Sun Apr 19 22:32:07 2026
***************
*** 0 ****
--- 1,80 ----
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+ // This file is part of GCC.
+ 
+ // GCC 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.
+ 
+ // GCC 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.
+ 
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #ifndef RUST_BUILTIN_ATTRIBUTE_CHECKER_H
+ #define RUST_BUILTIN_ATTRIBUTE_CHECKER_H
+ 
+ #include "rust-ast-visitor.h"
+ 
+ namespace Rust {
+ namespace Analysis {
+ 
+ void check_valid_attribute_for_item (const AST::Attribute &attr,
+ 				     const AST::Item &item);
+ 
+ /**
+  * Checks the validity of builtin attributes.
+  *
+  * The goal of this visitor is to  make sure that builtin attributes are
+  * correctly used by enforcing those rules:
+  *
+  * - Attributes are applied in allowed contexts, for example to make sure that
+  * #[inline] is only applied to functions and closures, as well as checking the
+  * "arguments"
+  *
+  * - input given to these attributes is appropriate and valid.
+  */
+ class BuiltinAttributeChecker : public AST::DefaultASTVisitor
+ {
+   using AST::DefaultASTVisitor::visit;
+ 
+   template <class I> void default_outer_attribute_check (I item)
+   {
+     for (auto &attr : item.get_outer_attrs ())
+       check_valid_attribute_for_item (attr, item);
+     AST::DefaultASTVisitor::visit (item);
+   }
+ 
+ public:
+   BuiltinAttributeChecker ();
+   void go (AST::Crate &crate);
+   void visit (AST::Crate &crate) override;
+   void visit (AST::Attribute &attribute) override;
+ 
+   // Items
+   void visit (AST::Module &module) override;
+   void visit (AST::ExternCrate &crate) override;
+   void visit (AST::UseDeclaration &use_decl) override;
+   void visit (AST::Function &function) override;
+   void visit (AST::TypeAlias &type_alias) override;
+   void visit (AST::StructStruct &struct_item) override;
+   void visit (AST::TupleStruct &tuple_struct) override;
+   void visit (AST::Enum &enum_item) override;
+   void visit (AST::Union &union_item) override;
+   void visit (AST::ConstantItem &const_item) override;
+   void visit (AST::StaticItem &static_item) override;
+   void visit (AST::Trait &trait) override;
+   void visit (AST::InherentImpl &impl) override;
+   void visit (AST::TraitImpl &impl) override;
+   void visit (AST::ExternBlock &block) override;
+ };
+ 
+ } // namespace Analysis
+ } // namespace Rust
+ 
+ #endif /* ! RUST_BUILTIN_ATTRIBUTE_CHECKER_H */
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-const-checker.cc gcc-16-20260419/gcc/rust/checks/errors/rust-const-checker.cc
*** gcc-16-20260412/gcc/rust/checks/errors/rust-const-checker.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/rust-const-checker.cc	Sun Apr 19 22:32:07 2026
***************
*** 24,37 ****
  #include "rust-system.h"
  #include "rust-immutable-name-resolution-context.h"
  
- // for flag_name_resolution_2_0
- #include "options.h"
- 
  namespace Rust {
  namespace HIR {
  
  ConstChecker::ConstChecker ()
!   : resolver (*Resolver::Resolver::get ()),
      mappings (Analysis::Mappings::get ())
  {}
  
--- 24,34 ----
  #include "rust-system.h"
  #include "rust-immutable-name-resolution-context.h"
  
  namespace Rust {
  namespace HIR {
  
  ConstChecker::ConstChecker ()
!   : resolver (Resolver2_0::ImmutableNameResolutionContext::get ().resolver ()),
      mappings (Analysis::Mappings::get ())
  {}
  
*************** ConstChecker::visit (CallExpr &expr)
*** 358,375 ****
    NodeId ast_node_id = expr.get_fnexpr ().get_mappings ().get_nodeid ();
    NodeId ref_node_id;
  
!   if (flag_name_resolution_2_0)
!     {
!       auto &nr_ctx
! 	= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
! 
!       if (auto id = nr_ctx.lookup (ast_node_id))
! 	ref_node_id = *id;
!       else
! 	return;
!     }
!   // We don't care about types here
!   else if (!resolver.lookup_resolved_name (ast_node_id, &ref_node_id))
      return;
  
    if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
--- 355,363 ----
    NodeId ast_node_id = expr.get_fnexpr ().get_mappings ().get_nodeid ();
    NodeId ref_node_id;
  
!   if (auto id = resolver.lookup (ast_node_id))
!     ref_node_id = *id;
!   else
      return;
  
    if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-const-checker.h gcc-16-20260419/gcc/rust/checks/errors/rust-const-checker.h
*** gcc-16-20260412/gcc/rust/checks/errors/rust-const-checker.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/rust-const-checker.h	Sun Apr 19 22:32:07 2026
***************
*** 22,28 ****
  #include "rust-hir-visitor.h"
  #include "rust-hir-type-check.h"
  #include "rust-stacked-contexts.h"
! #include "rust-name-resolver.h"
  
  namespace Rust {
  namespace HIR {
--- 22,28 ----
  #include "rust-hir-visitor.h"
  #include "rust-hir-type-check.h"
  #include "rust-stacked-contexts.h"
! #include "rust-name-resolution-context.h"
  
  namespace Rust {
  namespace HIR {
*************** private:
*** 72,78 ****
      std::vector<std::unique_ptr<GenericParam>> &param, ConstGenericCtx context);
  
    StackedContexts<HirId> const_context;
!   Resolver::Resolver &resolver;
    Analysis::Mappings &mappings;
  
    virtual void visit (Lifetime &lifetime) override;
--- 72,78 ----
      std::vector<std::unique_ptr<GenericParam>> &param, ConstGenericCtx context);
  
    StackedContexts<HirId> const_context;
!   const Resolver2_0::NameResolutionContext &resolver;
    Analysis::Mappings &mappings;
  
    virtual void visit (Lifetime &lifetime) override;
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc gcc-16-20260419/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
*** gcc-16-20260412/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc	Sun Apr 19 22:32:07 2026
*************** PlaceInfo::specialize (const Constructor
*** 936,942 ****
  	      TyTy::VariantDef *variant
  		= adt->get_variants ().at (c.get_variant_index ());
  	      if (variant->get_variant_type ()
! 		  == TyTy::VariantDef::VariantType::NUM)
  		return {};
  
  	      std::vector<PlaceInfo> new_place_infos;
--- 936,944 ----
  	      TyTy::VariantDef *variant
  		= adt->get_variants ().at (c.get_variant_index ());
  	      if (variant->get_variant_type ()
! 		    == TyTy::VariantDef::VariantType::NUM
! 		  || variant->get_variant_type ()
! 		       == TyTy::VariantDef::VariantType::UNIT)
  		return {};
  
  	      std::vector<PlaceInfo> new_place_infos;
*************** WitnessPat::to_string () const
*** 1050,1055 ****
--- 1052,1058 ----
  
  	switch (variant->get_variant_type ())
  	  {
+ 	  case TyTy::VariantDef::VariantType::UNIT:
  	  case TyTy::VariantDef::VariantType::NUM:
  	    {
  	      return buf;
*************** WitnessMatrix::apply_constructor (const
*** 1145,1151 ****
  	    TyTy::ADTType *adt = static_cast<TyTy::ADTType *> (ty);
  	    TyTy::VariantDef *variant
  	      = adt->get_variants ().at (ctor.get_variant_index ());
! 	    if (variant->get_variant_type () == TyTy::VariantDef::NUM)
  	      arity = 0;
  	    else
  	      arity = variant->get_fields ().size ();
--- 1148,1155 ----
  	    TyTy::ADTType *adt = static_cast<TyTy::ADTType *> (ty);
  	    TyTy::VariantDef *variant
  	      = adt->get_variants ().at (ctor.get_variant_index ());
! 	    if (variant->get_variant_type () == TyTy::VariantDef::NUM
! 		|| variant->get_variant_type () == TyTy::VariantDef::UNIT)
  	      arity = 0;
  	    else
  	      arity = variant->get_fields ().size ();
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-unsafe-checker.cc gcc-16-20260419/gcc/rust/checks/errors/rust-unsafe-checker.cc
*** gcc-16-20260412/gcc/rust/checks/errors/rust-unsafe-checker.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/rust-unsafe-checker.cc	Sun Apr 19 22:32:07 2026
***************
*** 26,40 ****
  #include "rust-immutable-name-resolution-context.h"
  #include "rust-intrinsic-values.h"
  
- // for flag_name_resolution_2_0
- #include "options.h"
- 
  namespace Rust {
  namespace HIR {
  
  UnsafeChecker::UnsafeChecker ()
    : context (*Resolver::TypeCheckContext::get ()),
!     resolver (*Resolver::Resolver::get ()),
      mappings (Analysis::Mappings::get ())
  {}
  
--- 26,37 ----
  #include "rust-immutable-name-resolution-context.h"
  #include "rust-intrinsic-values.h"
  
  namespace Rust {
  namespace HIR {
  
  UnsafeChecker::UnsafeChecker ()
    : context (*Resolver::TypeCheckContext::get ()),
!     resolver (Resolver2_0::ImmutableNameResolutionContext::get ().resolver ()),
      mappings (Analysis::Mappings::get ())
  {}
  
*************** UnsafeChecker::visit (PathInExpression &
*** 223,245 ****
    NodeId ast_node_id = path.get_mappings ().get_nodeid ();
    NodeId ref_node_id;
  
!   if (flag_name_resolution_2_0)
!     {
!       auto &nr_ctx
! 	= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
! 
!       auto resolved = nr_ctx.lookup (ast_node_id);
! 
!       if (!resolved.has_value ())
! 	return;
! 
!       ref_node_id = resolved.value ();
!     }
    else
!     {
!       if (!resolver.lookup_resolved_name (ast_node_id, &ref_node_id))
! 	return;
!     }
  
    if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
      {
--- 220,229 ----
    NodeId ast_node_id = path.get_mappings ().get_nodeid ();
    NodeId ref_node_id;
  
!   if (auto resolved = resolver.lookup (ast_node_id))
!     ref_node_id = resolved.value ();
    else
!     return;
  
    if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
      {
*************** UnsafeChecker::visit (CallExpr &expr)
*** 437,462 ****
    NodeId ast_node_id = expr.get_fnexpr ().get_mappings ().get_nodeid ();
    NodeId ref_node_id;
  
!   // There are no unsafe types, and functions are defined in the name resolver.
!   // If we can't find the name, then we're dealing with a type and should return
!   // early.
!   if (flag_name_resolution_2_0)
!     {
!       auto &nr_ctx
! 	= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
! 
!       auto resolved = nr_ctx.lookup (ast_node_id);
! 
!       if (!resolved.has_value ())
! 	return;
! 
!       ref_node_id = resolved.value ();
!     }
    else
!     {
!       if (!resolver.lookup_resolved_name (ast_node_id, &ref_node_id))
! 	return;
!     }
  
    if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
      {
--- 421,430 ----
    NodeId ast_node_id = expr.get_fnexpr ().get_mappings ().get_nodeid ();
    NodeId ref_node_id;
  
!   if (auto resolved = resolver.lookup (ast_node_id))
!     ref_node_id = resolved.value ();
    else
!     return;
  
    if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
      {
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/errors/rust-unsafe-checker.h gcc-16-20260419/gcc/rust/checks/errors/rust-unsafe-checker.h
*** gcc-16-20260412/gcc/rust/checks/errors/rust-unsafe-checker.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/errors/rust-unsafe-checker.h	Sun Apr 19 22:32:07 2026
***************
*** 20,26 ****
  #define RUST_UNSAFE_CHECKER_H
  
  #include "rust-hir-visitor.h"
! #include "rust-name-resolver.h"
  #include "rust-hir-type-check.h"
  #include "rust-stacked-contexts.h"
  
--- 20,26 ----
  #define RUST_UNSAFE_CHECKER_H
  
  #include "rust-hir-visitor.h"
! #include "rust-name-resolution-context.h"
  #include "rust-hir-type-check.h"
  #include "rust-stacked-contexts.h"
  
*************** private:
*** 54,60 ****
    StackedContexts<HirId> unsafe_context;
  
    Resolver::TypeCheckContext &context;
!   Resolver::Resolver &resolver;
    Analysis::Mappings &mappings;
  
    virtual void visit (Lifetime &lifetime) override;
--- 54,60 ----
    StackedContexts<HirId> unsafe_context;
  
    Resolver::TypeCheckContext &context;
!   const Resolver2_0::NameResolutionContext &resolver;
    Analysis::Mappings &mappings;
  
    virtual void visit (Lifetime &lifetime) override;
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/lints/rust-lint-marklive.cc gcc-16-20260419/gcc/rust/checks/lints/rust-lint-marklive.cc
*** gcc-16-20260412/gcc/rust/checks/lints/rust-lint-marklive.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/lints/rust-lint-marklive.cc	Sun Apr 19 22:32:07 2026
*************** MarkLive::visit_path_segment (HIR::PathE
*** 163,183 ****
    //
    // We should mark them alive all and ignoring other kind of segments.
    // If the segment we dont care then just return false is fine
!   if (flag_name_resolution_2_0)
!     {
!       auto &nr_ctx
! 	= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
! 
!       if (auto id = nr_ctx.lookup (ast_node_id))
! 	ref_node_id = *id;
!       else
! 	return false;
!     }
!   else if (!resolver->lookup_resolved_name (ast_node_id, &ref_node_id))
!     {
!       if (!resolver->lookup_resolved_type (ast_node_id, &ref_node_id))
! 	return false;
!     }
    if (auto hid = mappings.lookup_node_to_hir (ref_node_id))
      {
        mark_hir_id (*hid);
--- 163,172 ----
    //
    // We should mark them alive all and ignoring other kind of segments.
    // If the segment we dont care then just return false is fine
!   if (auto id = resolver.lookup (ast_node_id))
!     ref_node_id = *id;
!   else
!     return false;
    if (auto hid = mappings.lookup_node_to_hir (ref_node_id))
      {
        mark_hir_id (*hid);
*************** MarkLive::visit (HIR::TupleIndexExpr &ex
*** 250,270 ****
  void
  MarkLive::visit (HIR::TypeAlias &alias)
  {
!   NodeId ast_node_id = UNKNOWN_NODEID;
!   if (flag_name_resolution_2_0)
!     {
!       auto &nr_ctx
! 	= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
  
!       if (auto id = nr_ctx.lookup (
! 	    alias.get_type_aliased ().get_mappings ().get_nodeid ()))
! 	ast_node_id = *id;
!     }
    else
!     {
!       resolver->lookup_resolved_type (
! 	alias.get_type_aliased ().get_mappings ().get_nodeid (), &ast_node_id);
!     }
  
    if (auto hid = mappings.lookup_node_to_hir (ast_node_id))
      mark_hir_id (*hid);
--- 239,251 ----
  void
  MarkLive::visit (HIR::TypeAlias &alias)
  {
!   NodeId ast_node_id;
  
!   if (auto id = resolver.lookup (
! 	alias.get_type_aliased ().get_mappings ().get_nodeid ()))
!     ast_node_id = *id;
    else
!     rust_unreachable ();
  
    if (auto hid = mappings.lookup_node_to_hir (ast_node_id))
      mark_hir_id (*hid);
*************** MarkLive::mark_hir_id (HirId id)
*** 285,311 ****
  void
  MarkLive::find_ref_node_id (NodeId ast_node_id, NodeId &ref_node_id)
  {
!   if (flag_name_resolution_2_0)
!     {
!       auto &nr_ctx
! 	= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
! 
!       nr_ctx.lookup (ast_node_id).map ([&ref_node_id] (NodeId resolved) {
! 	ref_node_id = resolved;
!       });
!     }
!   else
!     {
!       if (!resolver->lookup_resolved_name (ast_node_id, &ref_node_id))
! 	{
! 	  if (!resolver->lookup_resolved_type (ast_node_id, &ref_node_id))
! 	    {
! 	      bool ok
! 		= resolver->lookup_resolved_misc (ast_node_id, &ref_node_id);
! 	      rust_assert (ok);
! 	    }
! 	}
!     }
  }
  
  } // namespace Analysis
--- 266,274 ----
  void
  MarkLive::find_ref_node_id (NodeId ast_node_id, NodeId &ref_node_id)
  {
!   auto resolved = resolver.lookup (ast_node_id);
!   rust_assert (resolved.has_value ());
!   ref_node_id = resolved.value ();
  }
  
  } // namespace Analysis
diff -Nrcpad gcc-16-20260412/gcc/rust/checks/lints/rust-lint-marklive.h gcc-16-20260419/gcc/rust/checks/lints/rust-lint-marklive.h
*** gcc-16-20260412/gcc/rust/checks/lints/rust-lint-marklive.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/checks/lints/rust-lint-marklive.h	Sun Apr 19 22:32:07 2026
***************
*** 23,28 ****
--- 23,29 ----
  #include "rust-hir-map.h"
  #include "rust-lint-marklive-base.h"
  #include "rust-name-resolver.h"
+ #include "rust-immutable-name-resolution-context.h"
  
  namespace Rust {
  namespace Analysis {
*************** private:
*** 277,287 ****
    std::set<HirId> liveSymbols;
    std::set<HirId> scannedSymbols;
    Analysis::Mappings &mappings;
!   Resolver::Resolver *resolver;
    Resolver::TypeCheckContext *tyctx;
    MarkLive (std::vector<HirId> worklist)
      : worklist (worklist), mappings (Analysis::Mappings::get ()),
!       resolver (Resolver::Resolver::get ()),
        tyctx (Resolver::TypeCheckContext::get ()){};
  
    void mark_hir_id (HirId);
--- 278,289 ----
    std::set<HirId> liveSymbols;
    std::set<HirId> scannedSymbols;
    Analysis::Mappings &mappings;
!   const Resolver2_0::NameResolutionContext &resolver;
    Resolver::TypeCheckContext *tyctx;
    MarkLive (std::vector<HirId> worklist)
      : worklist (worklist), mappings (Analysis::Mappings::get ()),
!       resolver (
! 	Resolver2_0::ImmutableNameResolutionContext::get ().resolver ()),
        tyctx (Resolver::TypeCheckContext::get ()){};
  
    void mark_hir_id (HirId);
diff -Nrcpad gcc-16-20260412/gcc/rust/expand/rust-derive.h gcc-16-20260419/gcc/rust/expand/rust-derive.h
*** gcc-16-20260412/gcc/rust/expand/rust-derive.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/expand/rust-derive.h	Sun Apr 19 22:32:07 2026
*************** private:
*** 104,110 ****
    virtual void visit (Token &tok) override final{};
    virtual void visit (DelimTokenTree &delim_tok_tree) override final{};
    virtual void visit (AttrInputMetaItemContainer &input) override final{};
-   virtual void visit (AttrInputMacro &expr) override final{};
    virtual void visit (AttrInputExpr &expr) override final{};
    virtual void visit (IdentifierExpr &ident_expr) override final{};
    virtual void visit (Lifetime &lifetime) override final{};
--- 104,109 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/expand/rust-expand-visitor.cc gcc-16-20260419/gcc/rust/expand/rust-expand-visitor.cc
*** gcc-16-20260412/gcc/rust/expand/rust-expand-visitor.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/expand/rust-expand-visitor.cc	Sun Apr 19 22:32:07 2026
*************** ExpandVisitor::expand_inner_items (
*** 218,223 ****
--- 218,224 ----
  		{
  		  if (is_builtin (current))
  		    {
+ 		      visit (*attr_it);
  		      attr_it++;
  		    }
  		  else
*************** ExpandVisitor::expand_inner_stmts (AST::
*** 303,308 ****
--- 304,310 ----
  		{
  		  if (is_builtin (current))
  		    {
+ 		      visit (*attr_it);
  		      attr_it++;
  		    }
  		  else
*************** ExpandVisitor::expand_inner_stmts (AST::
*** 334,339 ****
--- 336,359 ----
  }
  
  void
+ ExpandVisitor::visit (AST::Attribute &attr)
+ {
+   // An attribute input containing a macro may have been expanded to a literal
+   if (attr.has_attr_input ()
+       && attr.get_attr_input ().get_attr_input_type ()
+ 	   == AST::AttrInput::AttrInputType::EXPR)
+     {
+       auto &expr = static_cast<AST::AttrInputExpr &> (attr.get_attr_input ());
+       if (expr.get_expr ().is_literal ())
+ 	{
+ 	  auto &lit = static_cast<AST::LiteralExpr &> (expr.get_expr ());
+ 	  attr.set_attr_input (std::make_unique<AST::AttrInputLiteral> (lit));
+ 	}
+     }
+   AST::DefaultASTVisitor::visit (attr);
+ }
+ 
+ void
  ExpandVisitor::maybe_expand_expr (std::unique_ptr<AST::Expr> &expr)
  {
    NodeId old_expect = expr->get_node_id ();
*************** ExpandVisitor::visit (AST::AttrInputLite
*** 584,592 ****
  {}
  
  void
! ExpandVisitor::visit (AST::AttrInputMacro &macro)
  {
!   rust_sorry_at (UNDEF_LOCATION, "macros in attributes not supported");
  }
  
  void
--- 604,612 ----
  {}
  
  void
! ExpandVisitor::visit (AST::AttrInputExpr &attr_input)
  {
!   maybe_expand_expr (attr_input.get_expr_ptr ());
  }
  
  void
*************** ExpandVisitor::visit (AST::MetaItemPathE
*** 598,664 ****
  {}
  
  void
- ExpandVisitor::visit (AST::ArithmeticOrLogicalExpr &expr)
- {
-   maybe_expand_expr (expr.get_left_expr_ptr ());
-   maybe_expand_expr (expr.get_right_expr_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::ComparisonExpr &expr)
- {
-   maybe_expand_expr (expr.get_left_expr_ptr ());
-   maybe_expand_expr (expr.get_right_expr_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::LazyBooleanExpr &expr)
- {
-   maybe_expand_expr (expr.get_left_expr_ptr ());
-   maybe_expand_expr (expr.get_right_expr_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::TypeCastExpr &expr)
- {
-   maybe_expand_expr (expr.get_casted_expr_ptr ());
-   maybe_expand_type (expr.get_type_to_cast_to_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::AssignmentExpr &expr)
- {
-   maybe_expand_expr (expr.get_left_expr_ptr ());
-   maybe_expand_expr (expr.get_right_expr_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::CompoundAssignmentExpr &expr)
- {
-   maybe_expand_expr (expr.get_left_expr_ptr ());
-   maybe_expand_expr (expr.get_right_expr_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::GroupedExpr &expr)
- {
-   maybe_expand_expr (expr.get_expr_in_parens_ptr ());
- }
- 
- void
  ExpandVisitor::visit (AST::StructExprStruct &expr)
  {}
  
  void
- ExpandVisitor::visit (AST::CallExpr &expr)
- {
-   visit (expr.get_function_expr ());
- 
-   for (auto &param : expr.get_params ())
-     maybe_expand_expr (param);
- }
- 
- void
  ExpandVisitor::visit (AST::ClosureExprInner &expr)
  {
    expand_closure_params (expr.get_params ());
--- 618,627 ----
*************** ExpandVisitor::visit (AST::ClosureExprIn
*** 687,696 ****
  }
  
  void
- ExpandVisitor::visit (AST::ContinueExpr &expr)
- {}
- 
- void
  ExpandVisitor::visit (AST::IfExpr &expr)
  {
    maybe_expand_expr (expr.get_condition_expr_ptr ());
--- 650,655 ----
*************** ExpandVisitor::visit (AST::IfLetExprCons
*** 725,737 ****
  }
  
  void
- ExpandVisitor::visit (AST::TupleExpr &expr)
- {
-   for (auto &sub : expr.get_tuple_elems ())
-     maybe_expand_expr (sub);
- }
- 
- void
  ExpandVisitor::visit (AST::TypeParam &param)
  {
    for (auto &bound : param.get_type_param_bounds ())
--- 684,689 ----
*************** ExpandVisitor::visit (AST::Union &union_
*** 857,879 ****
  }
  
  void
- ExpandVisitor::visit (AST::ConstantItem &const_item)
- {
-   maybe_expand_type (const_item.get_type_ptr ());
- 
-   if (const_item.has_expr ())
-     maybe_expand_expr (const_item.get_expr_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::StaticItem &static_item)
- {
-   maybe_expand_type (static_item.get_type_ptr ());
- 
-   maybe_expand_expr (static_item.get_expr_ptr ());
- }
- 
- void
  ExpandVisitor::visit (AST::Trait &trait)
  {
    for (auto &generic : trait.get_generic_params ())
--- 809,814 ----
*************** ExpandVisitor::visit (AST::StructPattern
*** 995,1081 ****
  {}
  
  void
- ExpandVisitor::visit (AST::GroupedPattern &pattern)
- {
-   maybe_expand_pattern (pattern.get_pattern_in_parens_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::SlicePatternItemsNoRest &items)
- {
-   for (auto &sub : items.get_patterns ())
-     maybe_expand_pattern (sub);
- }
- 
- void
- ExpandVisitor::visit (AST::SlicePatternItemsHasRest &items)
- {
-   for (auto &sub : items.get_lower_patterns ())
-     maybe_expand_pattern (sub);
-   for (auto &sub : items.get_upper_patterns ())
-     maybe_expand_pattern (sub);
- }
- 
- void
- ExpandVisitor::visit (AST::AltPattern &pattern)
- {
-   for (auto &alt : pattern.get_alts ())
-     maybe_expand_pattern (alt);
- }
- 
- void
- ExpandVisitor::visit (AST::TupleStructItemsNoRest &tuple_items)
- {
-   for (auto &sub : tuple_items.get_patterns ())
-     maybe_expand_pattern (sub);
- }
- 
- void
- ExpandVisitor::visit (AST::TupleStructItemsHasRest &tuple_items)
- {
-   for (auto &sub : tuple_items.get_lower_patterns ())
-     maybe_expand_pattern (sub);
- 
-   for (auto &sub : tuple_items.get_upper_patterns ())
-     maybe_expand_pattern (sub);
- }
- 
- void
- ExpandVisitor::visit (AST::TuplePatternItemsNoRest &tuple_items)
- {
-   for (auto &sub : tuple_items.get_patterns ())
-     maybe_expand_pattern (sub);
- }
- 
- void
- ExpandVisitor::visit (AST::TuplePatternItemsHasRest &tuple_items)
- {
-   for (auto &sub : tuple_items.get_lower_patterns ())
-     maybe_expand_pattern (sub);
- 
-   for (auto &sub : tuple_items.get_upper_patterns ())
-     maybe_expand_pattern (sub);
- }
- 
- void
- ExpandVisitor::visit (AST::LetStmt &stmt)
- {
-   maybe_expand_pattern (stmt.get_pattern_ptr ());
- 
-   if (stmt.has_type ())
-     maybe_expand_type (stmt.get_type_ptr ());
- 
-   if (stmt.has_init_expr ())
-     maybe_expand_expr (stmt.get_init_expr_ptr ());
- }
- 
- void
- ExpandVisitor::visit (AST::ExprStmt &stmt)
- {
-   maybe_expand_expr (stmt.get_expr_ptr ());
- }
- 
- void
  ExpandVisitor::visit (AST::BareFunctionType &type)
  {
    for (auto &param : type.get_function_params ())
--- 930,935 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/expand/rust-expand-visitor.h gcc-16-20260419/gcc/rust/expand/rust-expand-visitor.h
*** gcc-16-20260412/gcc/rust/expand/rust-expand-visitor.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/expand/rust-expand-visitor.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 221,226 ****
--- 221,228 ----
    void visit (AST::LifetimeParam &) override;
    void visit (AST::ConstGenericParam &) override;
  
+   void visit (AST::Attribute &attribute) override;
+ 
    void visit (AST::MacroInvocation &macro_invoc) override;
  
    void visit (AST::PathInExpression &path) override;
*************** public:
*** 231,260 ****
  
    void visit (AST::LiteralExpr &expr) override;
    void visit (AST::AttrInputLiteral &) override;
!   void visit (AST::AttrInputMacro &) override;
    void visit (AST::MetaItemLitExpr &) override;
    void visit (AST::MetaItemPathExpr &) override;
-   void visit (AST::ArithmeticOrLogicalExpr &expr) override;
-   void visit (AST::ComparisonExpr &expr) override;
-   void visit (AST::LazyBooleanExpr &expr) override;
-   void visit (AST::TypeCastExpr &expr) override;
-   void visit (AST::AssignmentExpr &expr) override;
-   void visit (AST::CompoundAssignmentExpr &expr) override;
-   void visit (AST::GroupedExpr &expr) override;
    void visit (AST::StructExprStruct &expr) override;
  
-   void visit (AST::CallExpr &expr) override;
    void visit (AST::ClosureExprInner &expr) override;
  
    void visit (AST::BlockExpr &expr) override;
  
    void visit (AST::ClosureExprInnerTyped &expr) override;
-   void visit (AST::ContinueExpr &expr) override;
    void visit (AST::IfExpr &expr) override;
    void visit (AST::IfExprConseqElse &expr) override;
    void visit (AST::IfLetExpr &expr) override;
    void visit (AST::IfLetExprConseqElse &expr) override;
-   void visit (AST::TupleExpr &expr) override;
    void visit (AST::TypeParam &param) override;
    void visit (AST::LifetimeWhereClauseItem &) override;
    void visit (AST::TypeBoundWhereClauseItem &item) override;
--- 233,252 ----
  
    void visit (AST::LiteralExpr &expr) override;
    void visit (AST::AttrInputLiteral &) override;
!   void visit (AST::AttrInputExpr &) override;
    void visit (AST::MetaItemLitExpr &) override;
    void visit (AST::MetaItemPathExpr &) override;
    void visit (AST::StructExprStruct &expr) override;
  
    void visit (AST::ClosureExprInner &expr) override;
  
    void visit (AST::BlockExpr &expr) override;
  
    void visit (AST::ClosureExprInnerTyped &expr) override;
    void visit (AST::IfExpr &expr) override;
    void visit (AST::IfExprConseqElse &expr) override;
    void visit (AST::IfLetExpr &expr) override;
    void visit (AST::IfLetExprConseqElse &expr) override;
    void visit (AST::TypeParam &param) override;
    void visit (AST::LifetimeWhereClauseItem &) override;
    void visit (AST::TypeBoundWhereClauseItem &item) override;
*************** public:
*** 272,279 ****
    void visit (AST::EnumItemStruct &item) override;
    void visit (AST::EnumItemDiscriminant &item) override;
    void visit (AST::Union &union_item) override;
-   void visit (AST::ConstantItem &const_item) override;
-   void visit (AST::StaticItem &static_item) override;
    void visit (AST::Trait &trait) override;
    void visit (AST::InherentImpl &impl) override;
    void visit (AST::TraitImpl &impl) override;
--- 264,269 ----
*************** public:
*** 290,306 ****
    void visit (AST::MetaListPaths &) override;
    void visit (AST::MetaListNameValueStr &) override;
    void visit (AST::StructPatternFieldIdent &field) override;
-   void visit (AST::GroupedPattern &pattern) override;
-   void visit (AST::SlicePatternItemsNoRest &items) override;
-   void visit (AST::SlicePatternItemsHasRest &items) override;
-   void visit (AST::AltPattern &pattern) override;
-   void visit (AST::TupleStructItemsNoRest &tuple_items) override;
-   void visit (AST::TupleStructItemsHasRest &tuple_items) override;
-   void visit (AST::TuplePatternItemsNoRest &tuple_items) override;
-   void visit (AST::TuplePatternItemsHasRest &tuple_items) override;
- 
-   void visit (AST::LetStmt &stmt) override;
-   void visit (AST::ExprStmt &stmt) override;
  
    void visit (AST::BareFunctionType &type) override;
    void visit (AST::FunctionParam &param) override;
--- 280,285 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/expand/rust-macro-expand.cc gcc-16-20260419/gcc/rust/expand/rust-macro-expand.cc
*** gcc-16-20260412/gcc/rust/expand/rust-macro-expand.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/expand/rust-macro-expand.cc	Sun Apr 19 22:32:07 2026
*************** MacroExpander::expand_invoc (AST::MacroI
*** 345,353 ****
  void
  MacroExpander::expand_crate ()
  {
-   NodeId scope_node_id = crate.get_node_id ();
-   resolver->get_macro_scope ().push (scope_node_id);
- 
    /* fill macro/decorator map from init list? not sure where init list comes
     * from? */
  
--- 345,350 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/hir/rust-ast-lower-base.cc gcc-16-20260419/gcc/rust/hir/rust-ast-lower-base.cc
*** gcc-16-20260412/gcc/rust/hir/rust-ast-lower-base.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/hir/rust-ast-lower-base.cc	Sun Apr 19 22:32:07 2026
*************** ASTLoweringBase::visit (AST::LiteralExpr
*** 140,148 ****
  void
  ASTLoweringBase::visit (AST::AttrInputLiteral &)
  {}
- void
- ASTLoweringBase::visit (AST::AttrInputMacro &)
- {}
  
  void
  ASTLoweringBase::visit (AST::AttrInputExpr &)
--- 140,145 ----
*************** void
*** 835,847 ****
  ASTLoweringBase::handle_doc_item_attribute (const ItemWrapper &,
  					    const AST::Attribute &attr)
  {
!   if (!attr.has_attr_input ())
!     {
!       rust_error_at (attr.get_locus (),
! 		     "attribute must be of the form %qs or %qs",
! 		     "#[doc(hidden|inline|...)]", "#[doc = string]");
!       return;
!     }
  
    auto simple_doc_comment = attr.get_attr_input ().get_attr_input_type ()
  			    == AST::AttrInput::AttrInputType::LITERAL;
--- 832,838 ----
  ASTLoweringBase::handle_doc_item_attribute (const ItemWrapper &,
  					    const AST::Attribute &attr)
  {
!   rust_assert (attr.has_attr_input ());
  
    auto simple_doc_comment = attr.get_attr_input ().get_attr_input_type ()
  			    == AST::AttrInput::AttrInputType::LITERAL;
diff -Nrcpad gcc-16-20260412/gcc/rust/hir/rust-ast-lower-base.h gcc-16-20260419/gcc/rust/hir/rust-ast-lower-base.h
*** gcc-16-20260412/gcc/rust/hir/rust-ast-lower-base.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/hir/rust-ast-lower-base.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 106,112 ****
    virtual void visit (AST::LiteralExpr &expr) override;
    virtual void visit (AST::AttrInputLiteral &attr_input) override;
    virtual void visit (AST::AttrInputExpr &attr_input) override;
-   virtual void visit (AST::AttrInputMacro &attr_input) override;
    virtual void visit (AST::MetaItemLitExpr &meta_item) override;
    virtual void visit (AST::MetaItemPathExpr &meta_item) override;
    virtual void visit (AST::BorrowExpr &expr) override;
--- 106,111 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/hir/rust-ast-lower-item.cc gcc-16-20260419/gcc/rust/hir/rust-ast-lower-item.cc
*** gcc-16-20260412/gcc/rust/hir/rust-ast-lower-item.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/hir/rust-ast-lower-item.cc	Sun Apr 19 22:32:07 2026
*************** ASTLoweringItem::visit (AST::Function &f
*** 455,460 ****
--- 455,479 ----
  
        auto translated_pattern = std::unique_ptr<HIR::Pattern> (
  	ASTLoweringPattern::translate (param.get_pattern ()));
+ 
+       switch (param.get_pattern ().get_pattern_kind ())
+ 	{
+ 	case AST::Pattern::Kind::Identifier:
+ 	case AST::Pattern::Kind::Wildcard:
+ 	case AST::Pattern::Kind::Tuple:
+ 	case AST::Pattern::Kind::Struct:
+ 	case AST::Pattern::Kind::TupleStruct:
+ 	case AST::Pattern::Kind::Reference:
+ 	case AST::Pattern::Kind::Grouped:
+ 	case AST::Pattern::Kind::Slice:
+ 	case AST::Pattern::Kind::Rest:
+ 	  break;
+ 	default:
+ 	  rust_error_at (param.get_locus (),
+ 			 "refutable pattern in function argument");
+ 	  continue;
+ 	}
+ 
        auto translated_type = std::unique_ptr<HIR::Type> (
  	ASTLoweringType::translate (param.get_type ()));
  
diff -Nrcpad gcc-16-20260412/gcc/rust/lex/rust-lex.cc gcc-16-20260419/gcc/rust/lex/rust-lex.cc
*** gcc-16-20260412/gcc/rust/lex/rust-lex.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/lex/rust-lex.cc	Sun Apr 19 22:32:07 2026
*************** Lexer::parse_raw_string (location_t loc,
*** 2239,2246 ****
  template <typename IsDigitFunc>
  TokenPtr
  Lexer::parse_non_decimal_int_literal (location_t loc, IsDigitFunc is_digit_func,
! 				      std::string existent_str, int base)
  {
    int length = 1;
  
    skip_input ();
--- 2239,2248 ----
  template <typename IsDigitFunc>
  TokenPtr
  Lexer::parse_non_decimal_int_literal (location_t loc, IsDigitFunc is_digit_func,
! 				      int base)
  {
+   std::string raw_str;
+ 
    int length = 1;
  
    skip_input ();
*************** Lexer::parse_non_decimal_int_literal (lo
*** 2265,2279 ****
        length++;
  
        // add raw numbers
!       existent_str += current_char;
        skip_input ();
        current_char = peek_input ();
      }
  
    // convert value to decimal representation
!   long dec_num = std::strtol (existent_str.c_str (), nullptr, base);
! 
!   existent_str = std::to_string (dec_num);
  
    // parse in type suffix if it exists
    auto type_suffix_pair = parse_in_type_suffix ();
--- 2267,2285 ----
        length++;
  
        // add raw numbers
!       raw_str += current_char;
        skip_input ();
        current_char = peek_input ();
      }
  
    // convert value to decimal representation
!   mpz_t dec_num;
!   mpz_init (dec_num);
!   mpz_set_str (dec_num, raw_str.c_str (), base);
!   char *s = mpz_get_str (NULL, 10, dec_num);
!   std::string dec_str = s;
!   free (s);
!   mpz_clear (dec_num);
  
    // parse in type suffix if it exists
    auto type_suffix_pair = parse_in_type_suffix ();
*************** Lexer::parse_non_decimal_int_literal (lo
*** 2297,2331 ****
  
    loc += length - 1;
  
!   return Token::make_int (loc, std::move (existent_str), type_hint);
  }
  
  // Parses a hex, binary or octal int literal.
  TokenPtr
  Lexer::parse_non_decimal_int_literals (location_t loc)
  {
-   std::string str;
-   str.reserve (16); // some sensible default
-   str += current_char;
- 
    current_char = peek_input ();
  
    if (current_char == 'x')
      {
        // hex (integer only)
!       return parse_non_decimal_int_literal (loc, is_x_digit, str + "x", 16);
      }
    else if (current_char == 'o')
      {
        // octal (integer only)
!       return parse_non_decimal_int_literal (loc, is_octal_digit,
! 					    std::move (str), 8);
      }
    else if (current_char == 'b')
      {
        // binary (integer only)
!       return parse_non_decimal_int_literal (loc, is_bin_digit, std::move (str),
! 					    2);
      }
    else
      {
--- 2303,2331 ----
  
    loc += length - 1;
  
!   return Token::make_int (loc, std::move (dec_str), type_hint);
  }
  
  // Parses a hex, binary or octal int literal.
  TokenPtr
  Lexer::parse_non_decimal_int_literals (location_t loc)
  {
    current_char = peek_input ();
  
    if (current_char == 'x')
      {
        // hex (integer only)
!       return parse_non_decimal_int_literal (loc, is_x_digit, 16);
      }
    else if (current_char == 'o')
      {
        // octal (integer only)
!       return parse_non_decimal_int_literal (loc, is_octal_digit, 8);
      }
    else if (current_char == 'b')
      {
        // binary (integer only)
!       return parse_non_decimal_int_literal (loc, is_bin_digit, 2);
      }
    else
      {
diff -Nrcpad gcc-16-20260412/gcc/rust/lex/rust-lex.h gcc-16-20260419/gcc/rust/lex/rust-lex.h
*** gcc-16-20260412/gcc/rust/lex/rust-lex.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/lex/rust-lex.h	Sun Apr 19 22:32:07 2026
*************** private:
*** 154,161 ****
  
    template <typename IsDigitFunc>
    TokenPtr parse_non_decimal_int_literal (location_t loc,
! 					  IsDigitFunc is_digit_func,
! 					  std::string existent_str, int base);
  
  public:
    // Construct lexer with input file and filename provided
--- 154,160 ----
  
    template <typename IsDigitFunc>
    TokenPtr parse_non_decimal_int_literal (location_t loc,
! 					  IsDigitFunc is_digit_func, int base);
  
  public:
    // Construct lexer with input file and filename provided
diff -Nrcpad gcc-16-20260412/gcc/rust/parse/rust-parse-impl-attribute.hxx gcc-16-20260419/gcc/rust/parse/rust-parse-impl-attribute.hxx
*** gcc-16-20260412/gcc/rust/parse/rust-parse-impl-attribute.hxx	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/parse/rust-parse-impl-attribute.hxx	Sun Apr 19 22:32:07 2026
*************** Parser<ManagedTokenSource>::parse_attr_i
*** 314,321 ****
  	    if (!invoke)
  	      return Parse::Error::AttrInput::make_bad_macro_invocation ();
  
! 	    return std::unique_ptr<AST::AttrInput> (
! 	      new AST::AttrInputMacro (std::move (invoke)));
  	  }
  
  	AST::Literal::LitType lit_type = AST::Literal::STRING;
--- 314,320 ----
  	    if (!invoke)
  	      return Parse::Error::AttrInput::make_bad_macro_invocation ();
  
! 	    return std::make_unique<AST::AttrInputExpr> (std::move (invoke));
  	  }
  
  	AST::Literal::LitType lit_type = AST::Literal::STRING;
diff -Nrcpad gcc-16-20260412/gcc/rust/parse/rust-parse-impl.hxx gcc-16-20260419/gcc/rust/parse/rust-parse-impl.hxx
*** gcc-16-20260412/gcc/rust/parse/rust-parse-impl.hxx	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/parse/rust-parse-impl.hxx	Sun Apr 19 22:32:07 2026
*************** Parser<ManagedTokenSource>::parse_item (
*** 431,440 ****
        else if (t->get_str () == Values::WeakKeywords::DEFAULT
  	       && lexer.peek_token (1)->get_id () != EXCLAM)
  	{
! 	  add_error (Error (t->get_locus (),
! 			    "%qs is only allowed on items within %qs blocks",
! 			    "default", "impl"));
! 	  return Parse::Error::Item::make_malformed ();
  	}
        else if (is_macro_rules_def (t))
  	{
--- 431,439 ----
        else if (t->get_str () == Values::WeakKeywords::DEFAULT
  	       && lexer.peek_token (1)->get_id () != EXCLAM)
  	{
! 	  // parse normal functions with `default` qualifier
! 	  // they will be rejected in ASTValidation pass
! 	  return parse_vis_item (std::move (outer_attrs));
  	}
        else if (is_macro_rules_def (t))
  	{
*************** Parser<ManagedTokenSource>::parse_vis_it
*** 547,556 ****
  	  return parse_union (std::move (vis), std::move (outer_attrs));
  	  // or should item switch go straight to parsing union?
  	}
!       else
  	{
! 	  break;
  	}
      case CONST:
        // lookahead to resolve syntactical production
        t = lexer.peek_token (1);
--- 546,558 ----
  	  return parse_union (std::move (vis), std::move (outer_attrs));
  	  // or should item switch go straight to parsing union?
  	}
!       else if (t->get_str () == Values::WeakKeywords::DEFAULT)
  	{
! 	  // parse normal functions with `default` qualifier they will be
! 	  // rejected in ASTValidation pass
! 	  return parse_function (std::move (vis), std::move (outer_attrs));
  	}
+       break;
      case CONST:
        // lookahead to resolve syntactical production
        t = lexer.peek_token (1);
*************** Parser<ManagedTokenSource>::parse_functi
*** 1557,1563 ****
  {
    location_t locus = lexer.peek_token ()->get_locus ();
    // Get qualifiers for function if they exist
!   AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
  
    skip_token (FN_KW);
  
--- 1559,1567 ----
  {
    location_t locus = lexer.peek_token ()->get_locus ();
    // Get qualifiers for function if they exist
!   auto qualifiers = parse_function_qualifiers ();
!   if (!qualifiers)
!     return nullptr;
  
    skip_token (FN_KW);
  
*************** Parser<ManagedTokenSource>::parse_functi
*** 1633,1703 ****
        body = std::move (block_expr.value ());
      }
  
!   return std::unique_ptr<AST::Function> (
!     new AST::Function (std::move (function_name), std::move (qualifiers),
! 		       std::move (generic_params), std::move (function_params),
! 		       std::move (return_type), std::move (where_clause),
! 		       std::move (body), std::move (vis),
! 		       std::move (outer_attrs), locus, false, is_external));
  }
  
  // Parses function or method qualifiers (i.e. const, unsafe, and extern).
  template <typename ManagedTokenSource>
! AST::FunctionQualifiers
  Parser<ManagedTokenSource>::parse_function_qualifiers ()
  {
    Async async_status = Async::No;
    Const const_status = Const::No;
    Unsafety unsafe_status = Unsafety::Normal;
    bool has_extern = false;
    std::string abi;
  
!   const_TokenPtr t;
!   location_t locus;
!   // Check in order of const, unsafe, then extern
!   for (int i = 0; i < 2; i++)
      {
!       t = lexer.peek_token ();
!       locus = t->get_locus ();
  
!       switch (t->get_id ())
  	{
  	case CONST:
- 	  lexer.skip_token ();
- 	  const_status = Const::Yes;
- 	  break;
  	case ASYNC:
  	  lexer.skip_token ();
- 	  async_status = Async::Yes;
  	  break;
! 	default:
! 	  // const status is still none
  	  break;
  	}
      }
  
!   if (lexer.peek_token ()->get_id () == UNSAFE)
      {
!       lexer.skip_token ();
!       unsafe_status = Unsafety::Unsafe;
      }
  
!   if (lexer.peek_token ()->get_id () == EXTERN_KW)
!     {
!       lexer.skip_token ();
!       has_extern = true;
  
!       // detect optional abi name
!       const_TokenPtr next_tok = lexer.peek_token ();
!       if (next_tok->get_id () == STRING_LITERAL)
  	{
! 	  lexer.skip_token ();
! 	  abi = next_tok->get_str ();
  	}
      }
  
!   return AST::FunctionQualifiers (locus, async_status, const_status,
! 				  unsafe_status, has_extern, std::move (abi));
  }
  
  // Parses generic (lifetime or type) params inside angle brackets (optional).
--- 1637,1876 ----
        body = std::move (block_expr.value ());
      }
  
!   return std::unique_ptr<AST::Function> (new AST::Function (
!     std::move (function_name), std::move (qualifiers.value ()),
!     std::move (generic_params), std::move (function_params),
!     std::move (return_type), std::move (where_clause), std::move (body),
!     std::move (vis), std::move (outer_attrs), locus, is_external));
  }
  
  // Parses function or method qualifiers (i.e. const, unsafe, and extern).
  template <typename ManagedTokenSource>
! tl::expected<AST::FunctionQualifiers, Parse::Error::Node>
  Parser<ManagedTokenSource>::parse_function_qualifiers ()
  {
+   location_t locus = lexer.peek_token ()->get_locus ();
+ 
+   auto parsed = parse_function_qualifiers_raw (locus);
+   if (!parsed)
+     return tl::unexpected<Parse::Error::Node> (parsed.error ());
+ 
+   return function_qualifiers_from_keywords (locus, std::move (parsed->first),
+ 					    std::move (parsed->second));
+ }
+ 
+ // Take the list of parsed function qualifiers and convert it to
+ // the corrresponding flags to pass to the AST item constructor.
+ //
+ // This assumes ``keywords`` contains only those tokens that
+ // map to qualifiers.
+ template <typename ManagedTokenSource>
+ tl::expected<AST::FunctionQualifiers, Parse::Error::Node>
+ Parser<ManagedTokenSource>::function_qualifiers_from_keywords (
+   location_t locus, const std::vector<TokenId> keywords, std::string abi)
+ {
+   Default default_status = Default::No;
    Async async_status = Async::No;
    Const const_status = Const::No;
    Unsafety unsafe_status = Unsafety::Normal;
    bool has_extern = false;
+ 
+   for (auto qualifier : keywords)
+     {
+       switch (qualifier)
+ 	{
+ 	case IDENTIFIER:
+ 	  // only "default" is valid in this context
+ 	  default_status = Default::Yes;
+ 	  continue;
+ 	case CONST:
+ 	  const_status = Const::Yes;
+ 	  continue;
+ 	case ASYNC:
+ 	  async_status = Async::Yes;
+ 	  continue;
+ 	case UNSAFE:
+ 	  unsafe_status = Unsafety::Unsafe;
+ 	  continue;
+ 	case EXTERN_KW:
+ 	  has_extern = true;
+ 	  continue;
+ 	default:
+ 	  // non-qualifier token in input
+ 	  rust_unreachable ();
+ 	}
+     }
+ 
+   return AST::FunctionQualifiers (locus, default_status, async_status,
+ 				  const_status, unsafe_status, has_extern,
+ 				  std::move (abi));
+ }
+ 
+ // this consumes as many function qualifier tokens while ensuring
+ // uniqueness.
+ template <typename ManagedTokenSource>
+ tl::expected<std::pair<std::vector<TokenId>, std::string>, Parse::Error::Node>
+ Parser<ManagedTokenSource>::parse_function_qualifiers_raw (location_t locus)
+ {
+   std::vector<TokenId> found_order;
    std::string abi;
  
!   // this will terminate on duplicates or the first non-qualifier token
!   while (true)
      {
!       auto token = lexer.peek_token ();
!       const TokenId token_id = token->get_id ();
!       location_t locus = lexer.peek_token ()->get_locus ();
  
!       switch (token_id)
  	{
+ 	case IDENTIFIER:
+ 	  if (token->get_str () != Values::WeakKeywords::DEFAULT)
+ 	    {
+ 	      // only "default" is valid in this context, so this must
+ 	      // be a non-qualifier keyword
+ 	      goto done;
+ 	    }
+ 	  // fallthrough
  	case CONST:
  	case ASYNC:
+ 	case UNSAFE:
+ 	  found_order.push_back (token_id);
  	  lexer.skip_token ();
  	  break;
! 	case EXTERN_KW:
! 	  {
! 	    found_order.push_back (token_id);
! 	    lexer.skip_token ();
! 
! 	    // detect optional abi name
! 	    const_TokenPtr next_tok = lexer.peek_token ();
! 	    if (next_tok->get_id () == STRING_LITERAL)
! 	      {
! 		abi = next_tok->get_str ();
! 		lexer.skip_token ();
! 	      }
! 	  }
  	  break;
+ 	default:
+ 	  // non-qualifier keyword
+ 	  goto done;
+ 	}
+ 
+       if (std::count (found_order.cbegin (), found_order.cend (), token_id) > 1)
+ 	{
+ 	  // qualifiers mustn't appear twice
+ 	  Error error (locus, "encountered duplicate function qualifier %qs",
+ 		       token->get_token_description ());
+ 	  add_error (std::move (error));
+ 
+ 	  return tl::unexpected<Parse::Error::Node> (
+ 	    Parse::Error::Node::MALFORMED);
  	}
      }
+ done:
  
!   if (!ensure_function_qualifier_order (locus, found_order))
!     return tl::unexpected<Parse::Error::Node> (Parse::Error::Node::MALFORMED);
! 
!   return make_pair (found_order, abi);
! }
! 
! // Validate the order of the list of function qualifiers; this assumes that
! // ``found_order`` consists only of function qualifier tokens.
! //
! // If the order is illegal, the generated error message gives both the wrong
! // order as found in the source and the correct order according to Rust syntax
! // rules.
! template <typename ManagedTokenSource>
! bool
! Parser<ManagedTokenSource>::ensure_function_qualifier_order (
!   location_t locus, const std::vector<TokenId> &found_order)
! {
!   // Check in order of default, const, async, unsafe, extern
!   auto token_priority = [] (const TokenId id) {
!     switch (id)
!       {
!       case IDENTIFIER: // "default"; the only "weak" keyword considered here
! 	return 1;
!       case CONST:
! 	return 2;
!       case ASYNC:
! 	return 3;
!       case UNSAFE:
! 	return 4;
!       case EXTERN_KW:
! 	return 5;
!       default:
! 	rust_unreachable ();
!       };
!   };
! 
!   size_t last_priority = 0;
!   for (auto token_id : found_order)
      {
!       const size_t priority = token_priority (token_id);
!       if (priority <= last_priority)
! 	{
! 	  emit_function_qualifier_order_error_msg (locus, found_order);
! 	  return false;
! 	}
! 
!       last_priority = priority;
      }
  
!   return true;
! }
  
! template <typename ManagedTokenSource>
! void
! Parser<ManagedTokenSource>::emit_function_qualifier_order_error_msg (
!   location_t locus, const std::vector<TokenId> &found_order)
! {
!   std::vector<TokenId> expected_order
!     = {IDENTIFIER, CONST, ASYNC, UNSAFE, EXTERN_KW};
! 
!   // we only keep the qualifiers actually used in the offending code
!   std::vector<TokenId>::iterator token_id = expected_order.begin ();
!   while (token_id != expected_order.end ())
!     {
!       if (std::find (found_order.cbegin (), found_order.cend (), *token_id)
! 	  == found_order.cend ())
  	{
! 	  token_id = expected_order.erase (token_id);
! 	}
!       else
! 	{
! 	  ++token_id;
  	}
      }
  
!   auto qualifiers_to_str = [] (const std::vector<TokenId> &token_ids) {
!     std::ostringstream ss;
! 
!     for (auto id : token_ids)
!       {
! 	if (ss.tellp () != 0)
! 	  ss << ' ';
! 
! 	if (id == IDENTIFIER)
! 	  ss << Values::WeakKeywords::DEFAULT;
! 	else
! 	  ss << token_id_keyword_string (id);
!       }
! 
!     return ss.str ();
!   };
! 
!   const std::string found_qualifiers = qualifiers_to_str (found_order);
!   const std::string expected_qualifiers = qualifiers_to_str (expected_order);
! 
!   location_t error_locus
!     = make_location (locus, locus, lexer.peek_token ()->get_locus ());
!   Error error (error_locus,
! 	       "invalid order of function qualifiers; found %qs, expected %qs",
! 	       found_qualifiers.c_str (), expected_qualifiers.c_str ());
!   add_error (std::move (error));
  }
  
  // Parses generic (lifetime or type) params inside angle brackets (optional).
*************** Parser<ManagedTokenSource>::parse_inhere
*** 4274,4280 ****
  {
    location_t locus = lexer.peek_token ()->get_locus ();
    // parse function or method qualifiers
!   AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
  
    skip_token (FN_KW);
  
--- 4447,4455 ----
  {
    location_t locus = lexer.peek_token ()->get_locus ();
    // parse function or method qualifiers
!   auto qualifiers = parse_function_qualifiers ();
!   if (!qualifiers)
!     return nullptr;
  
    skip_token (FN_KW);
  
*************** Parser<ManagedTokenSource>::parse_inhere
*** 4360,4366 ****
      }
  
    return std::unique_ptr<AST::Function> (
!     new AST::Function (std::move (ident), std::move (qualifiers),
  		       std::move (generic_params), std::move (function_params),
  		       std::move (return_type), std::move (where_clause),
  		       std::move (body), std::move (vis),
--- 4535,4541 ----
      }
  
    return std::unique_ptr<AST::Function> (
!     new AST::Function (std::move (ident), std::move (qualifiers.value ()),
  		       std::move (generic_params), std::move (function_params),
  		       std::move (return_type), std::move (where_clause),
  		       std::move (body), std::move (vis),
*************** Parser<ManagedTokenSource>::parse_trait_
*** 4456,4472 ****
    // - template?
    location_t locus = lexer.peek_token ()->get_locus ();
  
-   auto is_default = false;
-   auto t = lexer.peek_token ();
-   if (t->get_id () == IDENTIFIER
-       && t->get_str () == Values::WeakKeywords::DEFAULT)
-     {
-       is_default = true;
-       lexer.skip_token ();
-     }
- 
    // parse function or method qualifiers
!   AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
  
    skip_token (FN_KW);
  
--- 4631,4640 ----
    // - template?
    location_t locus = lexer.peek_token ()->get_locus ();
  
    // parse function or method qualifiers
!   auto qualifiers = parse_function_qualifiers ();
!   if (!qualifiers)
!     return nullptr;
  
    skip_token (FN_KW);
  
*************** Parser<ManagedTokenSource>::parse_trait_
*** 4597,4607 ****
      }
  
    return std::unique_ptr<AST::Function> (
!     new AST::Function (std::move (ident), std::move (qualifiers),
  		       std::move (generic_params), std::move (function_params),
  		       std::move (return_type), std::move (where_clause),
  		       std::move (body), std::move (vis),
! 		       std::move (outer_attrs), locus, is_default));
  }
  
  // Parses an extern block of declarations.
--- 4765,4775 ----
      }
  
    return std::unique_ptr<AST::Function> (
!     new AST::Function (std::move (ident), std::move (qualifiers.value ()),
  		       std::move (generic_params), std::move (function_params),
  		       std::move (return_type), std::move (where_clause),
  		       std::move (body), std::move (vis),
! 		       std::move (outer_attrs), locus));
  }
  
  // Parses an extern block of declarations.
*************** Parser<ManagedTokenSource>::parse_bare_f
*** 6209,6215 ****
    // TODO: pass in for lifetime location as param
    location_t best_try_locus = lexer.peek_token ()->get_locus ();
  
!   AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
  
    if (!skip_token (FN_KW))
      return nullptr;
--- 6377,6385 ----
    // TODO: pass in for lifetime location as param
    location_t best_try_locus = lexer.peek_token ()->get_locus ();
  
!   auto qualifiers = parse_function_qualifiers ();
!   if (!qualifiers)
!     return nullptr;
  
    if (!skip_token (FN_KW))
      return nullptr;
*************** Parser<ManagedTokenSource>::parse_bare_f
*** 6292,6302 ****
  	}
      }
  
!   return std::unique_ptr<AST::BareFunctionType> (
!     new AST::BareFunctionType (std::move (for_lifetimes),
! 			       std::move (qualifiers), std::move (params),
! 			       is_variadic, std::move (variadic_attrs),
! 			       std::move (return_type), best_try_locus));
  }
  
  template <typename ManagedTokenSource>
--- 6462,6471 ----
  	}
      }
  
!   return std::unique_ptr<AST::BareFunctionType> (new AST::BareFunctionType (
!     std::move (for_lifetimes), std::move (qualifiers.value ()),
!     std::move (params), is_variadic, std::move (variadic_attrs),
!     std::move (return_type), best_try_locus));
  }
  
  template <typename ManagedTokenSource>
diff -Nrcpad gcc-16-20260412/gcc/rust/parse/rust-parse.h gcc-16-20260419/gcc/rust/parse/rust-parse.h
*** gcc-16-20260412/gcc/rust/parse/rust-parse.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/parse/rust-parse.h	Sun Apr 19 22:32:07 2026
*************** private:
*** 364,370 ****
    std::unique_ptr<AST::Function> parse_function (AST::Visibility vis,
  						 AST::AttrVec outer_attrs,
  						 bool is_external = false);
!   AST::FunctionQualifiers parse_function_qualifiers ();
    std::vector<std::unique_ptr<AST::GenericParam>>
    parse_generic_params_in_angles ();
    template <typename EndTokenPred>
--- 364,383 ----
    std::unique_ptr<AST::Function> parse_function (AST::Visibility vis,
  						 AST::AttrVec outer_attrs,
  						 bool is_external = false);
!   tl::expected<AST::FunctionQualifiers, Parse::Error::Node>
!   parse_function_qualifiers ();
!   tl::expected<std::pair<std::vector<TokenId>, std::string>, Parse::Error::Node>
!   parse_function_qualifiers_raw (location_t locus);
!   bool
!   ensure_function_qualifier_order (location_t locus,
! 				   const std::vector<TokenId> &found_order);
!   tl::expected<AST::FunctionQualifiers, Parse::Error::Node>
!   function_qualifiers_from_keywords (location_t locus,
! 				     std::vector<TokenId> keywords,
! 				     std::string abi);
!   void emit_function_qualifier_order_error_msg (
!     location_t locus, const std::vector<TokenId> &found_order);
! 
    std::vector<std::unique_ptr<AST::GenericParam>>
    parse_generic_params_in_angles ();
    template <typename EndTokenPred>
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-early-name-resolver-2.0.cc gcc-16-20260419/gcc/rust/resolve/rust-early-name-resolver-2.0.cc
*** gcc-16-20260412/gcc/rust/resolve/rust-early-name-resolver-2.0.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-early-name-resolver-2.0.cc	Sun Apr 19 22:32:07 2026
***************
*** 27,32 ****
--- 27,33 ----
  #include "rust-attributes.h"
  #include "rust-finalize-imports-2.0.h"
  #include "rust-attribute-values.h"
+ #include "rust-identifier-path.h"
  
  namespace Rust {
  namespace Resolver2_0 {
*************** Early::go (AST::Crate &crate)
*** 70,75 ****
--- 71,79 ----
    visit (crate);
  
    textual_scope.pop ();
+ 
+   // handle IdentifierPattern vs PathInExpression disambiguation
+   IdentifierPathPass::go (crate, ctx, std::move (ident_path_to_convert));
  }
  
  bool
*************** Early::visit (AST::Attribute &attr)
*** 393,398 ****
--- 397,404 ----
      {
        visit_non_builtin_attribute (attr, mappings, name);
      }
+ 
+   DefaultResolver::visit (attr);
  }
  
  void
*************** Early::visit (AST::UseTreeList &use_list
*** 543,547 ****
--- 549,577 ----
    DefaultResolver::visit (use_list);
  }
  
+ void
+ Early::visit (AST::IdentifierPattern &identifier)
+ {
+   // check if this is *really* a path pattern
+   if (!identifier.get_is_ref () && !identifier.get_is_mut ()
+       && !identifier.has_subpattern ())
+     {
+       auto res = ctx.values.get (identifier.get_ident ());
+       if (res)
+ 	{
+ 	  if (res->is_ambiguous ())
+ 	    rust_error_at (identifier.get_locus (), ErrorCode::E0659,
+ 			   "%qs is ambiguous",
+ 			   identifier.get_ident ().as_string ().c_str ());
+ 	  else
+ 	    {
+ 	      // HACK: bail out if the definition is a function
+ 	      if (!ctx.mappings.is_function_node (res->get_node_id ()))
+ 		ident_path_to_convert.insert (identifier.get_node_id ());
+ 	    }
+ 	}
+     }
+ }
+ 
  } // namespace Resolver2_0
  } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-early-name-resolver-2.0.h gcc-16-20260419/gcc/rust/resolve/rust-early-name-resolver-2.0.h
*** gcc-16-20260412/gcc/rust/resolve/rust-early-name-resolver-2.0.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-early-name-resolver-2.0.h	Sun Apr 19 22:32:07 2026
***************
*** 26,31 ****
--- 26,32 ----
  #include "rust-default-resolver.h"
  #include "rust-rib.h"
  #include "rust-toplevel-name-resolver-2.0.h"
+ #include "rust-pattern.h"
  
  namespace Rust {
  namespace Resolver2_0 {
*************** public:
*** 67,72 ****
--- 68,75 ----
  
    void visit (AST::Attribute &) override;
  
+   void visit (AST::IdentifierPattern &) override;
+ 
    struct ImportData
    {
      enum class Kind
*************** private:
*** 266,271 ****
--- 269,277 ----
  			     const Early::ImportPair &mapping);
  
    void finalize_rebind_import (const Early::ImportPair &mapping);
+ 
+   /* used to help conversion from IdentifierPattern to PathInExpression */
+   std::set<NodeId> ident_path_to_convert;
  };
  
  } // namespace Resolver2_0
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-finalize-imports-2.0.cc gcc-16-20260419/gcc/rust/resolve/rust-finalize-imports-2.0.cc
*** gcc-16-20260412/gcc/rust/resolve/rust-finalize-imports-2.0.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-finalize-imports-2.0.cc	Sun Apr 19 22:32:07 2026
*************** void
*** 64,71 ****
  GlobbingVisitor::visit_enum_container (AST::Enum &item)
  {
    for (auto &variant : item.get_variants ())
!     ctx.insert_globbed (variant->get_identifier (), variant->get_node_id (),
! 			Namespace::Types);
  }
  
  void
--- 64,76 ----
  GlobbingVisitor::visit_enum_container (AST::Enum &item)
  {
    for (auto &variant : item.get_variants ())
!     {
!       ctx.insert_globbed (variant->get_identifier (), variant->get_node_id (),
! 			  Namespace::Types);
!       if (variant->get_enum_item_kind () != AST::EnumItem::Kind::Struct)
! 	ctx.insert_globbed (variant->get_identifier (), variant->get_node_id (),
! 			    Namespace::Values);
!     }
  }
  
  void
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-forever-stack.h gcc-16-20260419/gcc/rust/resolve/rust-forever-stack.h
*** gcc-16-20260412/gcc/rust/resolve/rust-forever-stack.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-forever-stack.h	Sun Apr 19 22:32:07 2026
***************
*** 25,30 ****
--- 25,32 ----
  #include "rust-path.h"
  #include "optional.h"
  #include "expected.h"
+ #include "rust-name-resolution.h"
+ #include "rust-unwrap-segment.h"
  
  namespace Rust {
  namespace Resolver2_0 {
*************** enum class ResolutionMode
*** 550,555 ****
--- 552,625 ----
    FromExtern, // extern prelude
  };
  
+ class ResolutionPath
+ {
+ public:
+   template <typename T>
+   ResolutionPath (const std::vector<T> &segments_in, NodeId node_id)
+     : node_id (node_id)
+   {
+     segments.clear ();
+     segments.reserve (segments_in.size ());
+     for (auto &outer_seg : segments_in)
+       {
+ 	if (auto lang_item = unwrap_segment_get_lang_item (outer_seg))
+ 	  {
+ 	    rust_assert (!lang_prefix.has_value ());
+ 	    lang_prefix = std::make_pair (lang_item.value (),
+ 					  unwrap_segment_node_id (outer_seg));
+ 	    continue;
+ 	  }
+ 
+ 	auto &seg = unwrap_type_segment (outer_seg);
+ 
+ 	Segment new_seg;
+ 	new_seg.name = seg.as_string ();
+ 	new_seg.node_id = unwrap_segment_node_id (outer_seg);
+ 	new_seg.locus = seg.get_locus ();
+ 	segments.push_back (std::move (new_seg));
+       }
+   }
+ 
+   ResolutionPath () : node_id (UNKNOWN_NODEID) {}
+ 
+   struct Segment
+   {
+     std::string name;
+     NodeId node_id;
+     location_t locus;
+ 
+     bool is_super_path_seg () const { return name.compare ("super") == 0; }
+     bool is_crate_path_seg () const { return name.compare ("crate") == 0; }
+     bool is_lower_self_seg () const { return name.compare ("self") == 0; }
+     bool is_big_self_seg () const { return name.compare ("Self") == 0; }
+   };
+ 
+   tl::optional<std::pair<LangItem::Kind, NodeId>> get_lang_prefix () const
+   {
+     return lang_prefix;
+   }
+ 
+   const std::vector<Segment> &get_segments () const { return segments; }
+ 
+   NodeId get_node_id () const { return node_id; }
+ 
+   std::string as_string () const
+   {
+     std::string ret;
+     if (lang_prefix)
+       ret = "#[lang]::";
+     for (auto &seg : segments)
+       ret += "::" + seg.name;
+     return ret;
+   }
+ 
+ private:
+   tl::optional<std::pair<LangItem::Kind, NodeId>> lang_prefix;
+   std::vector<Segment> segments;
+   NodeId node_id;
+ };
+ 
  template <Namespace N> class ForeverStack
  {
  public:
*************** public:
*** 687,701 ****
     * @return a valid option with the Definition if the path is present in the
     *         current map, an empty one otherwise.
     */
-   template <typename S>
    tl::optional<Rib::Definition> resolve_path (
!     const std::vector<S> &segments, ResolutionMode mode,
!     std::function<void (const S &, NodeId)> insert_segment_resolution,
      std::vector<Error> &collect_errors);
-   template <typename S>
    tl::optional<Rib::Definition> resolve_path (
!     const std::vector<S> &segments, ResolutionMode mode,
!     std::function<void (const S &, NodeId)> insert_segment_resolution,
      std::vector<Error> &collect_errors, NodeId starting_point_id);
  
    // FIXME: Documentation
--- 757,769 ----
     * @return a valid option with the Definition if the path is present in the
     *         current map, an empty one otherwise.
     */
    tl::optional<Rib::Definition> resolve_path (
!     const ResolutionPath &path, ResolutionMode mode,
!     std::function<void (Usage, Definition)> insert_segment_resolution,
      std::vector<Error> &collect_errors);
    tl::optional<Rib::Definition> resolve_path (
!     const ResolutionPath &path, ResolutionMode mode,
!     std::function<void (Usage, Definition)> insert_segment_resolution,
      std::vector<Error> &collect_errors, NodeId starting_point_id);
  
    // FIXME: Documentation
*************** private:
*** 764,773 ****
  
    tl::optional<Rib::Definition> get (Node &start, const Identifier &name);
  
-   template <typename S>
    tl::optional<Rib::Definition> resolve_path (
!     const std::vector<S> &segments, ResolutionMode mode,
!     std::function<void (const S &, NodeId)> insert_segment_resolution,
      std::vector<Error> &collect_errors,
      std::reference_wrapper<Node> starting_point);
  
--- 832,840 ----
  
    tl::optional<Rib::Definition> get (Node &start, const Identifier &name);
  
    tl::optional<Rib::Definition> resolve_path (
!     const ResolutionPath &path, ResolutionMode mode,
!     std::function<void (Usage, Definition)> insert_segment_resolution,
      std::vector<Error> &collect_errors,
      std::reference_wrapper<Node> starting_point);
  
*************** private:
*** 817,839 ****
  
    /* Helper types and functions for `resolve_path` */
  
!   template <typename S>
!   using SegIterator = typename std::vector<S>::const_iterator;
  
    Node &find_closest_module (Node &starting_point);
  
!   template <typename S>
!   tl::optional<SegIterator<S>> find_starting_point (
!     const std::vector<S> &segments,
      std::reference_wrapper<Node> &starting_point,
!     std::function<void (const S &, NodeId)> insert_segment_resolution,
      std::vector<Error> &collect_errors);
  
-   template <typename S>
    tl::optional<Node &> resolve_segments (
!     Node &starting_point, const std::vector<S> &segments,
!     SegIterator<S> iterator,
!     std::function<void (const S &, NodeId)> insert_segment_resolution,
      std::vector<Error> &collect_errors);
  
    tl::optional<Rib::Definition> resolve_final_segment (Node &final_node,
--- 884,904 ----
  
    /* Helper types and functions for `resolve_path` */
  
!   using SegIterator =
!     typename std::vector<ResolutionPath::Segment>::const_iterator;
  
    Node &find_closest_module (Node &starting_point);
  
!   tl::optional<SegIterator> find_starting_point (
!     const std::vector<ResolutionPath::Segment> &segments,
      std::reference_wrapper<Node> &starting_point,
!     std::function<void (Usage, Definition)> insert_segment_resolution,
      std::vector<Error> &collect_errors);
  
    tl::optional<Node &> resolve_segments (
!     Node &starting_point, const std::vector<ResolutionPath::Segment> &segments,
!     SegIterator iterator,
!     std::function<void (Usage, Definition)> insert_segment_resolution,
      std::vector<Error> &collect_errors);
  
    tl::optional<Rib::Definition> resolve_final_segment (Node &final_node,
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-forever-stack.hxx gcc-16-20260419/gcc/rust/resolve/rust-forever-stack.hxx
*** gcc-16-20260412/gcc/rust/resolve/rust-forever-stack.hxx	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-forever-stack.hxx	Sun Apr 19 22:32:07 2026
*************** ForeverStack<Namespace::Types>::insert_v
*** 199,204 ****
--- 199,212 ----
  		       Rib::Definition::NonShadowable (node, true));
  }
  
+ template <>
+ inline tl::expected<NodeId, DuplicateNameError>
+ ForeverStack<Namespace::Values>::insert_variant (Identifier name, NodeId node)
+ {
+   return insert_inner (peek (), name.as_string (),
+ 		       Rib::Definition::NonShadowable (node, true));
+ }
+ 
  template <Namespace N>
  inline void
  ForeverStack<N>::insert_lang_prelude (Identifier name, NodeId id)
*************** ForeverStack<N>::find_closest_module (No
*** 431,446 ****
  
  /* If a the given condition is met, emit an error about misused leading path
   * segments */
- template <typename S>
  static inline bool
! check_leading_kw_at_start (std::vector<Error> &collect_errors, const S &segment,
  			   bool condition)
  {
    if (condition)
      collect_errors.emplace_back (
!       segment.get_locus (), ErrorCode::E0433,
!       "%qs in paths can only be used in start position",
!       segment.as_string ().c_str ());
  
    return condition;
  }
--- 439,453 ----
  
  /* If a the given condition is met, emit an error about misused leading path
   * segments */
  static inline bool
! check_leading_kw_at_start (std::vector<Error> &collect_errors,
! 			   const ResolutionPath::Segment &segment,
  			   bool condition)
  {
    if (condition)
      collect_errors.emplace_back (
!       segment.locus, ErrorCode::E0433,
!       "%qs in paths can only be used in start position", segment.name.c_str ());
  
    return condition;
  }
*************** check_leading_kw_at_start (std::vector<E
*** 451,473 ****
  // `super` segment, we go back to the cursor's parent until we reach the
  // correct one or the root.
  template <Namespace N>
! template <typename S>
! tl::optional<typename std::vector<S>::const_iterator>
  ForeverStack<N>::find_starting_point (
!   const std::vector<S> &segments, std::reference_wrapper<Node> &starting_point,
!   std::function<void (const S &, NodeId)> insert_segment_resolution,
    std::vector<Error> &collect_errors)
  {
    auto iterator = segments.begin ();
  
    for (; !is_last (iterator, segments); iterator++)
      {
!       auto &outer_seg = *iterator;
! 
!       if (unwrap_segment_get_lang_item (outer_seg).has_value ())
! 	break;
  
-       auto &seg = unwrap_type_segment (outer_seg);
        bool is_self_or_crate
  	= seg.is_crate_path_seg () || seg.is_lower_self_seg ();
  
--- 458,476 ----
  // `super` segment, we go back to the cursor's parent until we reach the
  // correct one or the root.
  template <Namespace N>
! tl::optional<typename std::vector<ResolutionPath::Segment>::const_iterator>
  ForeverStack<N>::find_starting_point (
!   const std::vector<ResolutionPath::Segment> &segments,
!   std::reference_wrapper<Node> &starting_point,
!   std::function<void (Usage, Definition)> insert_segment_resolution,
    std::vector<Error> &collect_errors)
  {
    auto iterator = segments.begin ();
  
    for (; !is_last (iterator, segments); iterator++)
      {
!       auto &seg = *iterator;
  
        bool is_self_or_crate
  	= seg.is_crate_path_seg () || seg.is_lower_self_seg ();
  
*************** ForeverStack<N>::find_starting_point (
*** 481,487 ****
        if (seg.is_crate_path_seg ())
  	{
  	  starting_point = root;
! 	  insert_segment_resolution (outer_seg, starting_point.get ().id);
  	  iterator++;
  	  break;
  	}
--- 484,491 ----
        if (seg.is_crate_path_seg ())
  	{
  	  starting_point = root;
! 	  insert_segment_resolution (Usage (seg.node_id),
! 				     Definition (starting_point.get ().id));
  	  iterator++;
  	  break;
  	}
*************** ForeverStack<N>::find_starting_point (
*** 489,495 ****
  	{
  	  // insert segment resolution and exit
  	  starting_point = find_closest_module (starting_point);
! 	  insert_segment_resolution (outer_seg, starting_point.get ().id);
  	  iterator++;
  	  break;
  	}
--- 493,500 ----
  	{
  	  // insert segment resolution and exit
  	  starting_point = find_closest_module (starting_point);
! 	  insert_segment_resolution (Usage (seg.node_id),
! 				     Definition (starting_point.get ().id));
  	  iterator++;
  	  break;
  	}
*************** ForeverStack<N>::find_starting_point (
*** 499,505 ****
  	  if (starting_point.get ().is_root ())
  	    {
  	      collect_errors.emplace_back (
! 		seg.get_locus (), ErrorCode::E0433,
  		"too many leading %<super%> keywords");
  	      return tl::nullopt;
  	    }
--- 504,510 ----
  	  if (starting_point.get ().is_root ())
  	    {
  	      collect_errors.emplace_back (
! 		seg.locus, ErrorCode::E0433,
  		"too many leading %<super%> keywords");
  	      return tl::nullopt;
  	    }
*************** ForeverStack<N>::find_starting_point (
*** 507,513 ****
  	  starting_point
  	    = find_closest_module (starting_point.get ().parent.value ());
  
! 	  insert_segment_resolution (outer_seg, starting_point.get ().id);
  	  continue;
  	}
  
--- 512,519 ----
  	  starting_point
  	    = find_closest_module (starting_point.get ().parent.value ());
  
! 	  insert_segment_resolution (Usage (seg.node_id),
! 				     Definition (starting_point.get ().id));
  	  continue;
  	}
  
*************** ForeverStack<N>::find_starting_point (
*** 521,551 ****
  }
  
  template <Namespace N>
- template <typename S>
  tl::optional<typename ForeverStack<N>::Node &>
  ForeverStack<N>::resolve_segments (
!   Node &starting_point, const std::vector<S> &segments,
!   typename std::vector<S>::const_iterator iterator,
!   std::function<void (const S &, NodeId)> insert_segment_resolution,
    std::vector<Error> &collect_errors)
  {
    Node *current_node = &starting_point;
    for (; !is_last (iterator, segments); iterator++)
      {
!       auto &outer_seg = *iterator;
! 
!       if (auto lang_item = unwrap_segment_get_lang_item (outer_seg))
! 	{
! 	  NodeId seg_id = Analysis::Mappings::get ().get_lang_item_node (
! 	    lang_item.value ());
! 	  current_node = &dfs_node (root, seg_id).value ();
! 
! 	  insert_segment_resolution (outer_seg, seg_id);
! 	  continue;
! 	}
  
!       auto &seg = unwrap_type_segment (outer_seg);
!       std::string str = seg.as_string ();
        rust_debug ("[ARTHUR]: resolving segment part: %s", str.c_str ());
  
        // check that we don't encounter *any* leading keywords afterwards
--- 527,545 ----
  }
  
  template <Namespace N>
  tl::optional<typename ForeverStack<N>::Node &>
  ForeverStack<N>::resolve_segments (
!   Node &starting_point, const std::vector<ResolutionPath::Segment> &segments,
!   typename std::vector<ResolutionPath::Segment>::const_iterator iterator,
!   std::function<void (Usage, Definition)> insert_segment_resolution,
    std::vector<Error> &collect_errors)
  {
    Node *current_node = &starting_point;
    for (; !is_last (iterator, segments); iterator++)
      {
!       auto &seg = *iterator;
  
!       std::string str = seg.name;
        rust_debug ("[ARTHUR]: resolving segment part: %s", str.c_str ());
  
        // check that we don't encounter *any* leading keywords afterwards
*************** ForeverStack<N>::resolve_segments (
*** 607,613 ****
  	      break;
  	    }
  
! 	  auto rib_lookup = current_node->rib.get (seg.as_string ());
  	  if (rib_lookup && !rib_lookup->is_ambiguous ())
  	    {
  	      if (Analysis::Mappings::get ()
--- 601,607 ----
  	      break;
  	    }
  
! 	  auto rib_lookup = current_node->rib.get (seg.name);
  	  if (rib_lookup && !rib_lookup->is_ambiguous ())
  	    {
  	      if (Analysis::Mappings::get ()
*************** ForeverStack<N>::resolve_segments (
*** 619,626 ****
  		}
  	      else
  		{
! 		  insert_segment_resolution (outer_seg,
! 					     rib_lookup->get_node_id ());
  		  return tl::nullopt;
  		}
  	    }
--- 613,621 ----
  		}
  	      else
  		{
! 		  insert_segment_resolution (Usage (seg.node_id),
! 					     Definition (
! 					       rib_lookup->get_node_id ()));
  		  return tl::nullopt;
  		}
  	    }
*************** ForeverStack<N>::resolve_segments (
*** 645,651 ****
        // if child didn't point to a value
        // the while loop above would have returned or kept looping
        current_node = &child->get ();
!       insert_segment_resolution (outer_seg, current_node->id);
      }
  
    return *current_node;
--- 640,647 ----
        // if child didn't point to a value
        // the while loop above would have returned or kept looping
        current_node = &child->get ();
!       insert_segment_resolution (Usage (seg.node_id),
! 				 Definition (current_node->id));
      }
  
    return *current_node;
*************** ForeverStack<N>::resolve_final_segment (
*** 672,682 ****
  }
  
  template <Namespace N>
- template <typename S>
  tl::optional<Rib::Definition>
  ForeverStack<N>::resolve_path (
!   const std::vector<S> &segments, ResolutionMode mode,
!   std::function<void (const S &, NodeId)> insert_segment_resolution,
    std::vector<Error> &collect_errors, NodeId starting_point_id)
  {
    auto starting_point = dfs_node (root, starting_point_id);
--- 668,677 ----
  }
  
  template <Namespace N>
  tl::optional<Rib::Definition>
  ForeverStack<N>::resolve_path (
!   const ResolutionPath &path, ResolutionMode mode,
!   std::function<void (Usage, Definition)> insert_segment_resolution,
    std::vector<Error> &collect_errors, NodeId starting_point_id)
  {
    auto starting_point = dfs_node (root, starting_point_id);
*************** ForeverStack<N>::resolve_path (
*** 686,768 ****
    if (!starting_point)
      return tl::nullopt;
  
!   return resolve_path (segments, mode, insert_segment_resolution,
! 		       collect_errors, *starting_point);
  }
  
  template <Namespace N>
- template <typename S>
  tl::optional<Rib::Definition>
  ForeverStack<N>::resolve_path (
!   const std::vector<S> &segments, ResolutionMode mode,
!   std::function<void (const S &, NodeId)> insert_segment_resolution,
    std::vector<Error> &collect_errors)
  {
    std::reference_wrapper<Node> starting_point = cursor ();
  
!   return resolve_path (segments, mode, insert_segment_resolution,
! 		       collect_errors, starting_point);
  }
  
  template <Namespace N>
- template <typename S>
  tl::optional<Rib::Definition>
  ForeverStack<N>::resolve_path (
!   const std::vector<S> &segments, ResolutionMode mode,
!   std::function<void (const S &, NodeId)> insert_segment_resolution,
    std::vector<Error> &collect_errors,
    std::reference_wrapper<Node> starting_point)
  {
!   rust_assert (!segments.empty ());
  
!   switch (mode)
      {
!     case ResolutionMode::Normal:
!       break; // default
!     case ResolutionMode::FromRoot:
!       starting_point = root;
!       break;
!     case ResolutionMode::FromExtern:
!       starting_point = extern_prelude;
!       break;
!     default:
!       rust_unreachable ();
!     }
  
!   // if there's only one segment, we just use `get`
!   if (segments.size () == 1)
      {
!       auto &outer_seg = segments.front ();
!       if (auto lang_item = unwrap_segment_get_lang_item (outer_seg))
  	{
! 	  NodeId seg_id = Analysis::Mappings::get ().get_lang_item_node (
! 	    lang_item.value ());
! 
! 	  insert_segment_resolution (outer_seg, seg_id);
! 	  // TODO: does NonShadowable matter?
! 	  return Rib::Definition::NonShadowable (seg_id);
  	}
  
!       auto &seg = unwrap_type_segment (outer_seg);
  
!       tl::optional<Rib::Definition> res
! 	= get (starting_point.get (), seg.as_string ());
  
        if (!res)
! 	res = get_lang_prelude (seg.as_string ());
  
        if (N == Namespace::Types && !res)
  	{
  	  if (seg.is_crate_path_seg ())
  	    {
! 	      insert_segment_resolution (outer_seg, root.id);
  	      // TODO: does NonShadowable matter?
  	      return Rib::Definition::NonShadowable (root.id);
  	    }
  	  else if (seg.is_lower_self_seg ())
  	    {
  	      NodeId id = find_closest_module (starting_point.get ()).id;
! 	      insert_segment_resolution (outer_seg, id);
  	      // TODO: does NonShadowable matter?
  	      return Rib::Definition::NonShadowable (id);
  	    }
--- 681,779 ----
    if (!starting_point)
      return tl::nullopt;
  
!   return resolve_path (path, mode, insert_segment_resolution, collect_errors,
! 		       *starting_point);
  }
  
  template <Namespace N>
  tl::optional<Rib::Definition>
  ForeverStack<N>::resolve_path (
!   const ResolutionPath &path, ResolutionMode mode,
!   std::function<void (Usage, Definition)> insert_segment_resolution,
    std::vector<Error> &collect_errors)
  {
    std::reference_wrapper<Node> starting_point = cursor ();
  
!   return resolve_path (path, mode, insert_segment_resolution, collect_errors,
! 		       starting_point);
  }
  
  template <Namespace N>
  tl::optional<Rib::Definition>
  ForeverStack<N>::resolve_path (
!   const ResolutionPath &path, ResolutionMode mode,
!   std::function<void (Usage, Definition)> insert_segment_resolution,
    std::vector<Error> &collect_errors,
    std::reference_wrapper<Node> starting_point)
  {
!   bool can_descend = true;
  
!   rust_debug ("resolving %s", path.as_string ().c_str ());
! 
!   if (auto lang_item = path.get_lang_prefix ())
      {
!       NodeId seg_id
! 	= Analysis::Mappings::get ().get_lang_item_node (lang_item->first);
  
!       insert_segment_resolution (Usage (lang_item->second),
! 				 Definition (seg_id));
! 
!       if (path.get_segments ().empty ())
! 	return Rib::Definition::NonShadowable (seg_id);
! 
!       auto new_start = dfs_node (root, seg_id);
!       rust_assert (new_start.has_value ());
!       starting_point = new_start.value ();
! 
!       can_descend = false;
!     }
!   else
      {
!       switch (mode)
  	{
! 	case ResolutionMode::Normal:
! 	  break; // default
! 	case ResolutionMode::FromRoot:
! 	  starting_point = root;
! 	  break;
! 	case ResolutionMode::FromExtern:
! 	  starting_point = extern_prelude;
! 	  break;
! 	default:
! 	  rust_unreachable ();
  	}
+     }
  
!   if (path.get_segments ().empty ())
!     {
!       return Rib::Definition::NonShadowable (starting_point.get ().id);
!     }
  
!   auto &segments = path.get_segments ();
! 
!   // if there's only one segment, we just use `get`
!   if (can_descend && segments.size () == 1)
!     {
!       auto &seg = segments.front ();
! 
!       tl::optional<Rib::Definition> res = get (starting_point.get (), seg.name);
  
        if (!res)
! 	res = get_lang_prelude (seg.name);
  
        if (N == Namespace::Types && !res)
  	{
  	  if (seg.is_crate_path_seg ())
  	    {
! 	      insert_segment_resolution (Usage (seg.node_id),
! 					 Definition (root.id));
  	      // TODO: does NonShadowable matter?
  	      return Rib::Definition::NonShadowable (root.id);
  	    }
  	  else if (seg.is_lower_self_seg ())
  	    {
  	      NodeId id = find_closest_module (starting_point.get ()).id;
! 	      insert_segment_resolution (Usage (seg.node_id), Definition (id));
  	      // TODO: does NonShadowable matter?
  	      return Rib::Definition::NonShadowable (id);
  	    }
*************** ForeverStack<N>::resolve_path (
*** 772,785 ****
  		= find_closest_module (starting_point.get ());
  	      if (closest_module.is_root ())
  		{
! 		  rust_error_at (seg.get_locus (), ErrorCode::E0433,
  				 "too many leading %<super%> keywords");
  		  return tl::nullopt;
  		}
  
  	      NodeId id
  		= find_closest_module (closest_module.parent.value ()).id;
! 	      insert_segment_resolution (outer_seg, id);
  	      // TODO: does NonShadowable matter?
  	      return Rib::Definition::NonShadowable (id);
  	    }
--- 783,796 ----
  		= find_closest_module (starting_point.get ());
  	      if (closest_module.is_root ())
  		{
! 		  rust_error_at (seg.locus, ErrorCode::E0433,
  				 "too many leading %<super%> keywords");
  		  return tl::nullopt;
  		}
  
  	      NodeId id
  		= find_closest_module (closest_module.parent.value ()).id;
! 	      insert_segment_resolution (Usage (seg.node_id), Definition (id));
  	      // TODO: does NonShadowable matter?
  	      return Rib::Definition::NonShadowable (id);
  	    }
*************** ForeverStack<N>::resolve_path (
*** 794,804 ****
  		  if (link.path.map_or (
  			[&seg] (Identifier path) {
  			  auto &path_str = path.as_string ();
! 			  return path_str == seg.as_string ();
  			},
  			false))
  		    {
! 		      insert_segment_resolution (outer_seg, kv.second.id);
  		      return Rib::Definition::NonShadowable (kv.second.id);
  		    }
  		}
--- 805,816 ----
  		  if (link.path.map_or (
  			[&seg] (Identifier path) {
  			  auto &path_str = path.as_string ();
! 			  return path_str == seg.name;
  			},
  			false))
  		    {
! 		      insert_segment_resolution (Usage (seg.node_id),
! 						 Definition (kv.second.id));
  		      return Rib::Definition::NonShadowable (kv.second.id);
  		    }
  		}
*************** ForeverStack<N>::resolve_path (
*** 806,833 ****
  	}
  
        if (res && !res->is_ambiguous ())
! 	insert_segment_resolution (outer_seg, res->get_node_id ());
        return res;
      }
  
!   return find_starting_point (segments, starting_point,
! 			      insert_segment_resolution, collect_errors)
!     .and_then (
!       [this, &segments, &starting_point, &insert_segment_resolution,
!        &collect_errors] (typename std::vector<S>::const_iterator iterator) {
! 	return resolve_segments (starting_point.get (), segments, iterator,
! 				 insert_segment_resolution, collect_errors);
!       })
      .and_then ([this, &segments, &insert_segment_resolution] (
  		 Node &final_node) -> tl::optional<Rib::Definition> {
        // leave resolution within impl blocks to type checker
        if (final_node.rib.kind == Rib::Kind::TraitOrImpl)
  	return tl::nullopt;
  
!       auto &seg = unwrap_type_segment (segments.back ());
!       std::string seg_name = seg.as_string ();
  
-       // assuming this can't be a lang item segment
        tl::optional<Rib::Definition> res
  	= resolve_final_segment (final_node, seg_name,
  				 seg.is_lower_self_seg ());
--- 818,850 ----
  	}
  
        if (res && !res->is_ambiguous ())
! 	insert_segment_resolution (Usage (seg.node_id),
! 				   Definition (res->get_node_id ()));
        return res;
      }
  
!   auto iterator = segments.begin ();
!   if (can_descend)
!     {
!       if (auto res
! 	  = find_starting_point (segments, starting_point,
! 				 insert_segment_resolution, collect_errors))
! 	iterator = *res;
!       else
! 	return tl::nullopt;
!     }
! 
!   return resolve_segments (starting_point.get (), segments, iterator,
! 			   insert_segment_resolution, collect_errors)
      .and_then ([this, &segments, &insert_segment_resolution] (
  		 Node &final_node) -> tl::optional<Rib::Definition> {
        // leave resolution within impl blocks to type checker
        if (final_node.rib.kind == Rib::Kind::TraitOrImpl)
  	return tl::nullopt;
  
!       auto &seg = segments.back ();
!       std::string seg_name = seg.name;
  
        tl::optional<Rib::Definition> res
  	= resolve_final_segment (final_node, seg_name,
  				 seg.is_lower_self_seg ());
*************** ForeverStack<N>::resolve_path (
*** 849,862 ****
  		    },
  		    false))
  		{
! 		  insert_segment_resolution (segments.back (), kv.second.id);
  		  return Rib::Definition::NonShadowable (kv.second.id);
  		}
  	    }
  	}
  
        if (res && !res->is_ambiguous ())
! 	insert_segment_resolution (segments.back (), res->get_node_id ());
  
        return res;
      });
--- 866,881 ----
  		    },
  		    false))
  		{
! 		  insert_segment_resolution (Usage (seg.node_id),
! 					     Definition (kv.second.id));
  		  return Rib::Definition::NonShadowable (kv.second.id);
  		}
  	    }
  	}
  
        if (res && !res->is_ambiguous ())
! 	insert_segment_resolution (Usage (seg.node_id),
! 				   Definition (res->get_node_id ()));
  
        return res;
      });
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-identifier-path.cc gcc-16-20260419/gcc/rust/resolve/rust-identifier-path.cc
*** gcc-16-20260412/gcc/rust/resolve/rust-identifier-path.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/rust/resolve/rust-identifier-path.cc	Sun Apr 19 22:32:07 2026
***************
*** 0 ****
--- 1,61 ----
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+ // This file is part of GCC.
+ 
+ // GCC 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.
+ 
+ // GCC 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.
+ 
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #include "rust-system.h"
+ #include "rust-identifier-path.h"
+ #include "rust-pattern.h"
+ 
+ namespace Rust {
+ namespace Resolver2_0 {
+ 
+ IdentifierPathPass::IdentifierPathPass (NameResolutionContext &ctx,
+ 					std::set<NodeId> ident_path_to_convert)
+   : ctx (&ctx), ident_path_to_convert (std::move (ident_path_to_convert))
+ {}
+ 
+ void
+ IdentifierPathPass::go (AST::Crate &crate, NameResolutionContext &ctx,
+ 			std::set<NodeId> ident_path_to_convert)
+ {
+   IdentifierPathPass pass (ctx, std::move (ident_path_to_convert));
+   pass.visit (crate);
+ }
+ 
+ void
+ IdentifierPathPass::reseat (std::unique_ptr<AST::Pattern> &ptr)
+ {
+   AST::IdentifierPattern *ident_pat;
+   if (ptr->get_pattern_kind () == AST::Pattern::Kind::Identifier)
+     ident_pat = static_cast<AST::IdentifierPattern *> (ptr.get ());
+   else
+     return;
+ 
+   if (ident_path_to_convert.find (ident_pat->get_node_id ())
+       != ident_path_to_convert.end ())
+     {
+       std::vector<AST::PathExprSegment> segments;
+       segments.emplace_back (ident_pat->get_ident ().as_string (),
+ 			     ident_pat->get_locus ());
+       ptr = std::make_unique<AST::PathInExpression> (
+ 	std::move (segments), std::vector<AST::Attribute> (),
+ 	ident_pat->get_locus ());
+     }
+ }
+ 
+ } // namespace Resolver2_0
+ } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-identifier-path.h gcc-16-20260419/gcc/rust/resolve/rust-identifier-path.h
*** gcc-16-20260412/gcc/rust/resolve/rust-identifier-path.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/rust/resolve/rust-identifier-path.h	Sun Apr 19 22:32:07 2026
***************
*** 0 ****
--- 1,50 ----
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+ // This file is part of GCC.
+ 
+ // GCC 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.
+ 
+ // GCC 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.
+ 
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #ifndef RUST_RESOLVE_IDENTIFIER_PATH_H
+ #define RUST_RESOLVE_IDENTIFIER_PATH_H
+ 
+ #include "rust-ast-pointer-visitor.h"
+ #include "rust-name-resolution-context.h"
+ 
+ namespace Rust {
+ namespace Resolver2_0 {
+ 
+ // changes IdentifierPattern instances to PathInExpression instances
+ class IdentifierPathPass : public AST::PointerVisitor
+ {
+ public:
+   IdentifierPathPass (NameResolutionContext &ctx,
+ 		      std::set<NodeId> ident_path_to_convert);
+ 
+   static void go (AST::Crate &crate, NameResolutionContext &ctx,
+ 		  std::set<NodeId> ident_path_to_convert);
+ 
+   using AST::PointerVisitor::reseat;
+ 
+   void reseat (std::unique_ptr<AST::Pattern> &ptr) override;
+ 
+ private:
+   NameResolutionContext *ctx;
+   std::set<NodeId> ident_path_to_convert;
+ };
+ 
+ } // namespace Resolver2_0
+ } // namespace Rust
+ 
+ #endif // ! RUST_RESOLVE_IDENTIFIER_PATH_H
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-name-resolution-context.cc gcc-16-20260419/gcc/rust/resolve/rust-name-resolution-context.cc
*** gcc-16-20260412/gcc/rust/resolve/rust-name-resolution-context.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-name-resolution-context.cc	Sun Apr 19 22:32:07 2026
*************** NameResolutionContext::insert (Identifie
*** 207,215 ****
  }
  
  tl::expected<NodeId, DuplicateNameError>
! NameResolutionContext::insert_variant (Identifier name, NodeId id)
  {
!   return types.insert_variant (name, id);
  }
  
  tl::expected<NodeId, DuplicateNameError>
--- 207,219 ----
  }
  
  tl::expected<NodeId, DuplicateNameError>
! NameResolutionContext::insert_variant (Identifier name, NodeId id,
! 				       bool is_also_value)
  {
!   auto res = types.insert_variant (name, id);
!   if (res.has_value () && is_also_value)
!     res = values.insert_variant (name, id);
!   return res;
  }
  
  tl::expected<NodeId, DuplicateNameError>
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-name-resolution-context.h gcc-16-20260419/gcc/rust/resolve/rust-name-resolution-context.h
*** gcc-16-20260412/gcc/rust/resolve/rust-name-resolution-context.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-name-resolution-context.h	Sun Apr 19 22:32:07 2026
***************
*** 16,23 ****
  // along with GCC; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
! #ifndef RUST_NAME_RESOLVER_2_0_H
! #define RUST_NAME_RESOLVER_2_0_H
  
  #include "optional.h"
  #include "rust-forever-stack.h"
--- 16,23 ----
  // along with GCC; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
! #ifndef RUST_NAME_RESOLVER_2_0_CTX_H
! #define RUST_NAME_RESOLVER_2_0_CTX_H
  
  #include "optional.h"
  #include "rust-forever-stack.h"
***************
*** 25,30 ****
--- 25,31 ----
  #include "rust-rib.h"
  #include "rust-stacked-contexts.h"
  #include "rust-item.h"
+ #include "rust-name-resolution.h"
  
  namespace Rust {
  namespace Resolver2_0 {
*************** change?
*** 136,163 ****
  correct
  */
  
- // FIXME: Documentation
- class Usage
- {
- public:
-   explicit Usage (NodeId id) : id (id) {}
- 
-   // TODO: move to name-resolution-ctx.cc
-   // storing it as a key in a map
-   bool operator< (const Usage other) const { return other.id < id; }
- 
-   NodeId id;
- };
- 
- // FIXME: Documentation
- class Definition
- {
- public:
-   explicit Definition (NodeId id) : id (id) {}
- 
-   NodeId id;
- };
- 
  struct IdentifierMode
  {
    bool is_ref;
--- 137,142 ----
*************** public:
*** 494,501 ****
    tl::expected<NodeId, DuplicateNameError> insert (Identifier name, NodeId id,
  						   Namespace ns);
  
!   tl::expected<NodeId, DuplicateNameError> insert_variant (Identifier name,
! 							   NodeId id);
  
    tl::expected<NodeId, DuplicateNameError>
    insert_shadowable (Identifier name, NodeId id, Namespace ns);
--- 473,480 ----
    tl::expected<NodeId, DuplicateNameError> insert (Identifier name, NodeId id,
  						   Namespace ns);
  
!   tl::expected<NodeId, DuplicateNameError>
!   insert_variant (Identifier name, NodeId id, bool is_also_value);
  
    tl::expected<NodeId, DuplicateNameError>
    insert_shadowable (Identifier name, NodeId id, Namespace ns);
*************** public:
*** 549,564 ****
      return canonical_ctx.get_path (id);
    }
  
-   template <typename S>
    tl::optional<Rib::Definition>
!   resolve_path (const std::vector<S> &segments, ResolutionMode mode,
  		std::vector<Error> &collect_errors, Namespace ns)
    {
!     std::function<void (const S &, NodeId)> insert_segment_resolution
!       = [this] (const S &seg, NodeId id) {
! 	  auto seg_id = unwrap_segment_node_id (seg);
! 	  if (resolved_nodes.find (Usage (seg_id)) == resolved_nodes.end ())
! 	    map_usage (Usage (seg_id), Definition (id));
  	};
  
      tl::optional<Rib::Definition> resolved = tl::nullopt;
--- 528,541 ----
      return canonical_ctx.get_path (id);
    }
  
    tl::optional<Rib::Definition>
!   resolve_path (const ResolutionPath &path, ResolutionMode mode,
  		std::vector<Error> &collect_errors, Namespace ns)
    {
!     std::function<void (Usage, Definition)> insert_segment_resolution
!       = [this] (Usage seg_id, Definition id) {
! 	  if (resolved_nodes.find (seg_id) == resolved_nodes.end ())
! 	    map_usage (seg_id, id);
  	};
  
      tl::optional<Rib::Definition> resolved = tl::nullopt;
*************** public:
*** 566,589 ****
      switch (ns)
        {
        case Namespace::Values:
! 	resolved
! 	  = values.resolve_path (segments, mode, insert_segment_resolution,
! 				 collect_errors);
  	break;
        case Namespace::Types:
! 	resolved
! 	  = types.resolve_path (segments, mode, insert_segment_resolution,
! 				collect_errors);
  	break;
        case Namespace::Macros:
! 	resolved
! 	  = macros.resolve_path (segments, mode, insert_segment_resolution,
! 				 collect_errors);
  	break;
        case Namespace::Labels:
! 	resolved
! 	  = labels.resolve_path (segments, mode, insert_segment_resolution,
! 				 collect_errors);
  	break;
        default:
  	rust_unreachable ();
--- 543,562 ----
      switch (ns)
        {
        case Namespace::Values:
! 	resolved = values.resolve_path (path, mode, insert_segment_resolution,
! 					collect_errors);
  	break;
        case Namespace::Types:
! 	resolved = types.resolve_path (path, mode, insert_segment_resolution,
! 				       collect_errors);
  	break;
        case Namespace::Macros:
! 	resolved = macros.resolve_path (path, mode, insert_segment_resolution,
! 					collect_errors);
  	break;
        case Namespace::Labels:
! 	resolved = labels.resolve_path (path, mode, insert_segment_resolution,
! 					collect_errors);
  	break;
        default:
  	rust_unreachable ();
*************** public:
*** 596,615 ****
  	switch (ns)
  	  {
  	  case Namespace::Values:
! 	    return values.resolve_path (segments, mode,
! 					insert_segment_resolution,
  					collect_errors, *prelude);
  	  case Namespace::Types:
! 	    return types.resolve_path (segments, mode,
! 				       insert_segment_resolution,
  				       collect_errors, *prelude);
  	  case Namespace::Macros:
! 	    return macros.resolve_path (segments, mode,
! 					insert_segment_resolution,
  					collect_errors, *prelude);
  	  case Namespace::Labels:
! 	    return labels.resolve_path (segments, mode,
! 					insert_segment_resolution,
  					collect_errors, *prelude);
  	  default:
  	    rust_unreachable ();
--- 569,584 ----
  	switch (ns)
  	  {
  	  case Namespace::Values:
! 	    return values.resolve_path (path, mode, insert_segment_resolution,
  					collect_errors, *prelude);
  	  case Namespace::Types:
! 	    return types.resolve_path (path, mode, insert_segment_resolution,
  				       collect_errors, *prelude);
  	  case Namespace::Macros:
! 	    return macros.resolve_path (path, mode, insert_segment_resolution,
  					collect_errors, *prelude);
  	  case Namespace::Labels:
! 	    return labels.resolve_path (path, mode, insert_segment_resolution,
  					collect_errors, *prelude);
  	  default:
  	    rust_unreachable ();
*************** public:
*** 619,655 ****
      return resolved;
    }
  
    template <typename S, typename... Args>
    tl::optional<Rib::Definition>
!   resolve_path (const std::vector<S> &segments, ResolutionMode mode,
  		tl::optional<std::vector<Error> &> collect_errors,
  		Namespace ns_first, Args... ns_args)
    {
!     std::initializer_list<Namespace> namespaces = {ns_first, ns_args...};
! 
!     for (auto ns : namespaces)
!       {
! 	std::vector<Error> collect_errors_inner;
! 	if (auto ret = resolve_path (segments, mode, collect_errors_inner, ns))
! 	  return ret;
! 	if (!collect_errors_inner.empty ())
! 	  {
! 	    if (collect_errors.has_value ())
! 	      {
! 		std::move (collect_errors_inner.begin (),
! 			   collect_errors_inner.end (),
! 			   std::back_inserter (collect_errors.value ()));
! 	      }
! 	    else
! 	      {
! 		for (auto &e : collect_errors_inner)
! 		  e.emit ();
! 	      }
! 	    return tl::nullopt;
! 	  }
!       }
  
!     return tl::nullopt;
    }
  
    template <typename S, typename... Args>
--- 588,709 ----
      return resolved;
    }
  
+   class ResolutionBuilder
+   {
+   public:
+     ResolutionBuilder (NameResolutionContext &ctx) : ctx (&ctx) {}
+ 
+     template <typename S>
+     void set_path (const std::vector<S> &path_segments, NodeId node_id,
+ 		   bool has_opening_scope)
+     {
+       path = ResolutionPath (path_segments, node_id);
+       mode = ResolutionMode::Normal;
+       if (has_opening_scope)
+ 	{
+ 	  if (get_rust_edition () == Edition::E2015)
+ 	    mode = ResolutionMode::FromRoot;
+ 	  else
+ 	    mode = ResolutionMode::FromExtern;
+ 	}
+       has_path_set = true;
+     }
+ 
+     template <typename S>
+     void set_path (const std::vector<S> &path_segments, NodeId node_id,
+ 		   ResolutionMode mode)
+     {
+       path = ResolutionPath (path_segments, node_id);
+       this->mode = mode;
+       has_path_set = true;
+     }
+ 
+     void set_path (const AST::SimplePath &path)
+     {
+       set_path (path.get_segments (), path.get_node_id (),
+ 		path.has_opening_scope_resolution ());
+     }
+ 
+     void set_path (const AST::PathInExpression &path)
+     {
+       set_path (path.get_segments (), path.get_node_id (),
+ 		path.opening_scope_resolution ());
+     }
+ 
+     void set_path (const AST::TypePath &path)
+     {
+       set_path (path.get_segments (), path.get_node_id (),
+ 		path.has_opening_scope_resolution_op ());
+     }
+ 
+     void set_mode (ResolutionMode mode) { this->mode = mode; }
+ 
+     void add_namespaces (Namespace ns) { namespace_list.push_back (ns); }
+ 
+     template <typename... Args> void add_namespaces (Namespace ns, Args... rest)
+     {
+       add_namespaces (ns);
+       add_namespaces (rest...);
+     }
+ 
+     void set_collect_errors (tl::optional<std::vector<Error> &> collect_errors)
+     {
+       this->collect_errors = collect_errors;
+     }
+ 
+     tl::optional<Rib::Definition> resolve ()
+     {
+       rust_assert (has_path_set);
+ 
+       for (auto ns : namespace_list)
+ 	{
+ 	  std::vector<Error> collect_errors_inner;
+ 	  if (auto ret
+ 	      = ctx->resolve_path (path, mode, collect_errors_inner, ns))
+ 	    return ret;
+ 	  if (!collect_errors_inner.empty ())
+ 	    {
+ 	      if (collect_errors.has_value ())
+ 		{
+ 		  std::move (collect_errors_inner.begin (),
+ 			     collect_errors_inner.end (),
+ 			     std::back_inserter (collect_errors.value ()));
+ 		}
+ 	      else
+ 		{
+ 		  for (auto &e : collect_errors_inner)
+ 		    e.emit ();
+ 		}
+ 	    }
+ 	}
+ 
+       return tl::nullopt;
+     }
+ 
+   private:
+     ResolutionPath path;
+     ResolutionMode mode;
+     bool has_path_set;
+ 
+     std::vector<Namespace> namespace_list;
+ 
+     tl::optional<std::vector<Error> &> collect_errors;
+ 
+     NameResolutionContext *ctx;
+   };
+ 
    template <typename S, typename... Args>
    tl::optional<Rib::Definition>
!   resolve_path (const std::vector<S> &path_segments, ResolutionMode mode,
  		tl::optional<std::vector<Error> &> collect_errors,
  		Namespace ns_first, Args... ns_args)
    {
!     ResolutionBuilder builder (*this);
!     builder.set_path (path_segments, UNKNOWN_NODEID, mode);
!     builder.add_namespaces (ns_first, ns_args...);
!     builder.set_collect_errors (collect_errors);
  
!     return builder.resolve ();
    }
  
    template <typename S, typename... Args>
*************** public:
*** 659,674 ****
  		tl::optional<std::vector<Error> &> collect_errors,
  		Namespace ns_first, Args... ns_args)
    {
!     auto mode = ResolutionMode::Normal;
!     if (has_opening_scope_resolution)
!       {
! 	if (get_rust_edition () == Edition::E2015)
! 	  mode = ResolutionMode::FromRoot;
! 	else
! 	  mode = ResolutionMode::FromExtern;
!       }
!     return resolve_path (path_segments, mode, collect_errors, ns_first,
! 			 ns_args...);
    }
  
    template <typename S, typename... Args>
--- 713,725 ----
  		tl::optional<std::vector<Error> &> collect_errors,
  		Namespace ns_first, Args... ns_args)
    {
!     ResolutionBuilder builder (*this);
!     builder.set_path (path_segments, UNKNOWN_NODEID,
! 		      has_opening_scope_resolution);
!     builder.add_namespaces (ns_first, ns_args...);
!     builder.set_collect_errors (collect_errors);
! 
!     return builder.resolve ();
    }
  
    template <typename S, typename... Args>
*************** public:
*** 677,684 ****
  		bool has_opening_scope_resolution, Namespace ns_first,
  		Args... ns_args)
    {
!     return resolve_path (path_segments, has_opening_scope_resolution,
! 			 tl::nullopt, ns_first, ns_args...);
    }
  
    template <typename S, typename... Args>
--- 728,739 ----
  		bool has_opening_scope_resolution, Namespace ns_first,
  		Args... ns_args)
    {
!     ResolutionBuilder builder (*this);
!     builder.set_path (path_segments, UNKNOWN_NODEID,
! 		      has_opening_scope_resolution);
!     builder.add_namespaces (ns_first, ns_args...);
! 
!     return builder.resolve ();
    }
  
    template <typename S, typename... Args>
*************** public:
*** 686,693 ****
    resolve_path (const std::vector<S> &path_segments, ResolutionMode mode,
  		Namespace ns_first, Args... ns_args)
    {
!     return resolve_path (path_segments, mode, tl::nullopt, ns_first,
! 			 ns_args...);
    }
  
    template <typename... Args>
--- 741,751 ----
    resolve_path (const std::vector<S> &path_segments, ResolutionMode mode,
  		Namespace ns_first, Args... ns_args)
    {
!     ResolutionBuilder builder (*this);
!     builder.set_path (path_segments, UNKNOWN_NODEID, mode);
!     builder.add_namespaces (ns_first, ns_args...);
! 
!     return builder.resolve ();
    }
  
    template <typename... Args>
*************** private:
*** 727,730 ****
  } // namespace Resolver2_0
  } // namespace Rust
  
! #endif // ! RUST_NAME_RESOLVER_2_0_H
--- 785,788 ----
  } // namespace Resolver2_0
  } // namespace Rust
  
! #endif // ! RUST_NAME_RESOLVER_2_0_CTX_H
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-name-resolution.h gcc-16-20260419/gcc/rust/resolve/rust-name-resolution.h
*** gcc-16-20260412/gcc/rust/resolve/rust-name-resolution.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/rust/resolve/rust-name-resolution.h	Sun Apr 19 22:32:07 2026
***************
*** 0 ****
--- 1,50 ----
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+ // This file is part of GCC.
+ 
+ // GCC 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.
+ 
+ // GCC 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.
+ 
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #ifndef RUST_NAME_RESOLVER_2_0_H
+ #define RUST_NAME_RESOLVER_2_0_H
+ 
+ namespace Rust {
+ namespace Resolver2_0 {
+ 
+ // FIXME: Documentation
+ class Usage
+ {
+ public:
+   explicit Usage (NodeId id) : id (id) {}
+ 
+   // TODO: move to name-resolution-ctx.cc
+   // storing it as a key in a map
+   bool operator< (const Usage other) const { return other.id < id; }
+ 
+   NodeId id;
+ };
+ 
+ // FIXME: Documentation
+ class Definition
+ {
+ public:
+   explicit Definition (NodeId id) : id (id) {}
+ 
+   NodeId id;
+ };
+ 
+ } // namespace Resolver2_0
+ } // namespace Rust
+ 
+ #endif // RUST_NAME_RESOLVER_2_0_H
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-name-resolver.cc gcc-16-20260419/gcc/rust/resolve/rust-name-resolver.cc
*** gcc-16-20260412/gcc/rust/resolve/rust-name-resolver.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-name-resolver.cc	Sun Apr 19 22:32:07 2026
*************** Scope::decl_was_declared_here (NodeId de
*** 275,288 ****
    return found;
  }
  
! Resolver::Resolver ()
!   : mappings (Analysis::Mappings::get ()), tyctx (TypeCheckContext::get ()),
!     name_scope (Scope (mappings.get_current_crate ())),
!     type_scope (Scope (mappings.get_current_crate ())),
!     label_scope (Scope (mappings.get_current_crate ())),
!     macro_scope (Scope (mappings.get_current_crate ())),
!     global_type_node_id (UNKNOWN_NODEID), unit_ty_node_id (UNKNOWN_NODEID)
! {}
  
  Resolver *
  Resolver::get ()
--- 275,281 ----
    return found;
  }
  
! Resolver::Resolver () {}
  
  Resolver *
  Resolver::get ()
*************** Resolver::get ()
*** 295,683 ****
  }
  
  void
- Resolver::push_new_name_rib (Rib *r)
- {
-   rust_assert (name_ribs.find (r->get_node_id ()) == name_ribs.end ());
-   name_ribs[r->get_node_id ()] = r;
- }
- 
- void
- Resolver::push_new_type_rib (Rib *r)
- {
-   if (type_ribs.size () == 0)
-     global_type_node_id = r->get_node_id ();
- 
-   rust_assert (type_ribs.find (r->get_node_id ()) == type_ribs.end ());
-   type_ribs[r->get_node_id ()] = r;
- }
- 
- void
- Resolver::push_new_label_rib (Rib *r)
- {
-   rust_assert (label_ribs.find (r->get_node_id ()) == label_ribs.end ());
-   label_ribs[r->get_node_id ()] = r;
- }
- 
- void
- Resolver::push_new_macro_rib (Rib *r)
- {
-   rust_assert (label_ribs.find (r->get_node_id ()) == label_ribs.end ());
-   macro_ribs[r->get_node_id ()] = r;
- }
- 
- bool
- Resolver::find_name_rib (NodeId id, Rib **rib)
- {
-   auto it = name_ribs.find (id);
-   if (it == name_ribs.end ())
-     return false;
- 
-   *rib = it->second;
-   return true;
- }
- 
- bool
- Resolver::find_type_rib (NodeId id, Rib **rib)
- {
-   auto it = type_ribs.find (id);
-   if (it == type_ribs.end ())
-     return false;
- 
-   *rib = it->second;
-   return true;
- }
- 
- bool
- Resolver::find_macro_rib (NodeId id, Rib **rib)
- {
-   auto it = macro_ribs.find (id);
-   if (it == macro_ribs.end ())
-     return false;
- 
-   *rib = it->second;
-   return true;
- }
- 
- void
- Resolver::insert_builtin_types (Rib *r)
- {
-   auto builtins = get_builtin_types ();
-   for (auto &builtin : builtins)
-     {
-       CanonicalPath builtin_path
- 	= CanonicalPath::new_seg (builtin->get_node_id (),
- 				  builtin->as_string ());
-       r->insert_name (builtin_path, builtin->get_node_id (), BUILTINS_LOCATION,
- 		      false, Rib::ItemType::Type,
- 		      [] (const CanonicalPath &, NodeId, location_t) -> void {
- 		      });
-     }
- }
- 
- std::vector<AST::Type *> &
- Resolver::get_builtin_types ()
- {
-   return builtins;
- }
- 
- void
- Resolver::generate_builtins ()
- {
-   auto u8
-     = new TyTy::UintType (mappings.get_next_hir_id (), TyTy::UintType::U8);
-   auto u16
-     = new TyTy::UintType (mappings.get_next_hir_id (), TyTy::UintType::U16);
-   auto u32
-     = new TyTy::UintType (mappings.get_next_hir_id (), TyTy::UintType::U32);
-   auto u64
-     = new TyTy::UintType (mappings.get_next_hir_id (), TyTy::UintType::U64);
-   auto u128
-     = new TyTy::UintType (mappings.get_next_hir_id (), TyTy::UintType::U128);
-   auto i8 = new TyTy::IntType (mappings.get_next_hir_id (), TyTy::IntType::I8);
-   auto i16
-     = new TyTy::IntType (mappings.get_next_hir_id (), TyTy::IntType::I16);
-   auto i32
-     = new TyTy::IntType (mappings.get_next_hir_id (), TyTy::IntType::I32);
-   auto i64
-     = new TyTy::IntType (mappings.get_next_hir_id (), TyTy::IntType::I64);
-   auto i128
-     = new TyTy::IntType (mappings.get_next_hir_id (), TyTy::IntType::I128);
-   auto rbool = new TyTy::BoolType (mappings.get_next_hir_id ());
-   auto f32
-     = new TyTy::FloatType (mappings.get_next_hir_id (), TyTy::FloatType::F32);
-   auto f64
-     = new TyTy::FloatType (mappings.get_next_hir_id (), TyTy::FloatType::F64);
-   auto usize = new TyTy::USizeType (mappings.get_next_hir_id ());
-   auto isize = new TyTy::ISizeType (mappings.get_next_hir_id ());
-   auto char_tyty = new TyTy::CharType (mappings.get_next_hir_id ());
-   auto str = new TyTy::StrType (mappings.get_next_hir_id ());
-   auto never = new TyTy::NeverType (mappings.get_next_hir_id ());
- 
-   setup_builtin ("u8", u8);
-   setup_builtin ("u16", u16);
-   setup_builtin ("u32", u32);
-   setup_builtin ("u64", u64);
-   setup_builtin ("u128", u128);
-   setup_builtin ("i8", i8);
-   setup_builtin ("i16", i16);
-   setup_builtin ("i32", i32);
-   setup_builtin ("i64", i64);
-   setup_builtin ("i128", i128);
-   setup_builtin ("bool", rbool);
-   setup_builtin ("f32", f32);
-   setup_builtin ("f64", f64);
-   setup_builtin ("usize", usize);
-   setup_builtin ("isize", isize);
-   setup_builtin ("char", char_tyty);
-   setup_builtin ("str", str);
- 
-   // never type
-   NodeId never_node_id = setup_builtin ("!", never);
-   set_never_type_node_id (never_node_id);
- 
-   // unit type ()
-   TyTy::TupleType *unit_tyty = TyTy::TupleType::get_unit_type ();
-   std::vector<std::unique_ptr<AST::Type> > elems;
-   AST::TupleType *unit_type
-     = new AST::TupleType (std::move (elems), BUILTINS_LOCATION);
-   builtins.push_back (unit_type);
-   tyctx->insert_builtin (unit_tyty->get_ref (), unit_type->get_node_id (),
- 			 unit_tyty);
-   set_unit_type_node_id (unit_type->get_node_id ());
- }
- 
- NodeId
- Resolver::setup_builtin (const std::string &name, TyTy::BaseType *tyty)
- {
-   AST::PathIdentSegment seg (name, BUILTINS_LOCATION);
-   auto typePath = ::std::unique_ptr<AST::TypePathSegment> (
-     new AST::TypePathSegment (::std::move (seg), false, BUILTINS_LOCATION));
-   ::std::vector< ::std::unique_ptr<AST::TypePathSegment> > segs;
-   segs.push_back (::std::move (typePath));
-   auto builtin_type
-     = new AST::TypePath (::std::move (segs), BUILTINS_LOCATION, false);
-   builtins.push_back (builtin_type);
-   tyctx->insert_builtin (tyty->get_ref (), builtin_type->get_node_id (), tyty);
-   mappings.insert_node_to_hir (builtin_type->get_node_id (), tyty->get_ref ());
-   mappings.insert_canonical_path (
-     builtin_type->get_node_id (),
-     CanonicalPath::new_seg (builtin_type->get_node_id (), name));
- 
-   return builtin_type->get_node_id ();
- }
- 
- void
  Resolver::insert_resolved_name (NodeId refId, NodeId defId)
  {
!   rust_assert (!flag_name_resolution_2_0);
!   rust_assert (resolved_names.find (refId) == resolved_names.end ());
! 
!   resolved_names[refId] = defId;
!   get_name_scope ().append_reference_for_def (refId, defId);
!   insert_captured_item (defId);
  }
  
  bool
  Resolver::lookup_resolved_name (NodeId refId, NodeId *defId)
  {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = resolved_names.find (refId);
!   if (it == resolved_names.end ())
!     return false;
! 
!   *defId = it->second;
!   return true;
  }
  
  void
  Resolver::insert_resolved_type (NodeId refId, NodeId defId)
  {
!   rust_assert (!flag_name_resolution_2_0);
!   rust_assert (resolved_types.find (refId) == resolved_types.end ());
! 
!   resolved_types[refId] = defId;
!   get_type_scope ().append_reference_for_def (refId, defId);
  }
  
  bool
  Resolver::lookup_resolved_type (NodeId refId, NodeId *defId)
  {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = resolved_types.find (refId);
!   if (it == resolved_types.end ())
!     return false;
! 
!   *defId = it->second;
!   return true;
! }
! 
! void
! Resolver::insert_resolved_label (NodeId refId, NodeId defId)
! {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = resolved_labels.find (refId);
!   rust_assert (it == resolved_labels.end ());
! 
!   resolved_labels[refId] = defId;
!   get_label_scope ().append_reference_for_def (refId, defId);
! }
! 
! bool
! Resolver::lookup_resolved_label (NodeId refId, NodeId *defId)
! {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = resolved_labels.find (refId);
!   if (it == resolved_labels.end ())
!     return false;
! 
!   *defId = it->second;
!   return true;
! }
! 
! void
! Resolver::insert_resolved_macro (NodeId refId, NodeId defId)
! {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = resolved_macros.find (refId);
!   rust_assert (it == resolved_macros.end ());
! 
!   resolved_labels[refId] = defId;
!   get_label_scope ().append_reference_for_def (refId, defId);
! }
! 
! bool
! Resolver::lookup_resolved_macro (NodeId refId, NodeId *defId)
! {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = resolved_macros.find (refId);
!   if (it == resolved_macros.end ())
!     return false;
! 
!   *defId = it->second;
!   return true;
  }
  
  void
  Resolver::insert_resolved_misc (NodeId refId, NodeId defId)
  {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = misc_resolved_items.find (refId);
!   rust_assert (it == misc_resolved_items.end ());
! 
!   misc_resolved_items[refId] = defId;
  }
  
  bool
  Resolver::lookup_resolved_misc (NodeId refId, NodeId *defId)
  {
!   rust_assert (!flag_name_resolution_2_0);
!   auto it = misc_resolved_items.find (refId);
!   if (it == misc_resolved_items.end ())
!     return false;
! 
!   *defId = it->second;
!   return true;
! }
! 
! void
! Resolver::push_closure_context (NodeId closure_expr_id)
! {
!   auto it = closures_capture_mappings.find (closure_expr_id);
!   rust_assert (it == closures_capture_mappings.end ());
! 
!   closures_capture_mappings.insert ({closure_expr_id, {}});
!   closure_context.push_back (closure_expr_id);
! }
! 
! void
! Resolver::pop_closure_context ()
! {
!   rust_assert (!closure_context.empty ());
!   closure_context.pop_back ();
! }
! 
! void
! Resolver::insert_captured_item (NodeId id)
! {
!   // nothing to do unless we are in a closure context
!   if (closure_context.empty ())
!     return;
! 
!   // check that this is a VAR_DECL?
!   Scope &name_scope = get_name_scope ();
!   Rib::ItemType type = Rib::ItemType::Unknown;
!   bool found = name_scope.lookup_decl_type (id, &type);
!   if (!found)
!     return;
! 
!   // RIB Function { let a, let b } id = 1;
!   //   RIB Closure { let c } id = 2;
!   //     RIB IfStmt { <bind a>} id = 3;
!   //   RIB ... { ... } id = 4
!   //
!   // if we have a resolved_node_id of 'a' and the current rib is '3' we know
!   // this is binding exists in a rib with id < the closure rib id, other wise
!   // its just a normal binding and we don't care
!   //
!   // Problem the node id's dont work like this because the inner most items are
!   // created first so this means the root will have a larger id and a simple
!   // less than or greater than check wont work for more complex scoping cases
!   // but we can use our current rib context to figure this out by checking if
!   // the rib id the decl we care about exists prior to the rib for the closure
!   // id
! 
!   const Rib *r = nullptr;
!   bool ok = name_scope.lookup_rib_for_decl (id, &r);
!   rust_assert (ok);
!   NodeId decl_rib_node_id = r->get_node_id ();
! 
!   // iterate the closure context and add in the mapping for all to handle the
!   // case of nested closures
!   for (auto &closure_expr_id : closure_context)
!     {
!       if (!decl_needs_capture (decl_rib_node_id, closure_expr_id, name_scope))
! 	continue;
! 
!       // is this a valid binding to take
!       bool is_var_decl_p = type == Rib::ItemType::Var;
!       if (!is_var_decl_p)
! 	{
! 	  // FIXME is this an error case?
! 	  return;
! 	}
! 
!       // append it to the context info
!       auto it = closures_capture_mappings.find (closure_expr_id);
!       rust_assert (it != closures_capture_mappings.end ());
! 
!       it->second.insert (id);
!     }
! }
! 
! bool
! Resolver::decl_needs_capture (NodeId decl_rib_node_id,
! 			      NodeId closure_rib_node_id, const Scope &scope)
! {
!   for (const auto &rib : scope.get_context ())
!     {
!       bool rib_is_closure = rib->get_node_id () == closure_rib_node_id;
!       bool rib_is_decl = rib->get_node_id () == decl_rib_node_id;
!       if (rib_is_closure)
! 	return false;
!       else if (rib_is_decl)
! 	return true;
!     }
!   return false;
! }
! 
! const std::set<NodeId> &
! Resolver::get_captures (NodeId id) const
! {
!   rust_assert (!flag_name_resolution_2_0);
! 
!   auto it = closures_capture_mappings.find (id);
!   rust_assert (it != closures_capture_mappings.end ());
!   return it->second;
  }
  
  } // namespace Resolver
--- 288,326 ----
  }
  
  void
  Resolver::insert_resolved_name (NodeId refId, NodeId defId)
  {
!   rust_unreachable ();
  }
  
  bool
  Resolver::lookup_resolved_name (NodeId refId, NodeId *defId)
  {
!   rust_unreachable ();
  }
  
  void
  Resolver::insert_resolved_type (NodeId refId, NodeId defId)
  {
!   rust_unreachable ();
  }
  
  bool
  Resolver::lookup_resolved_type (NodeId refId, NodeId *defId)
  {
!   rust_unreachable ();
  }
  
  void
  Resolver::insert_resolved_misc (NodeId refId, NodeId defId)
  {
!   rust_unreachable ();
  }
  
  bool
  Resolver::lookup_resolved_misc (NodeId refId, NodeId *defId)
  {
!   rust_unreachable ();
  }
  
  } // namespace Resolver
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-name-resolver.h gcc-16-20260419/gcc/rust/resolve/rust-name-resolver.h
*** gcc-16-20260412/gcc/rust/resolve/rust-name-resolver.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-name-resolver.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 124,296 ****
    static Resolver *get ();
    ~Resolver () {}
  
-   // these builtin types
-   void insert_builtin_types (Rib *r);
- 
-   // these will be required for type resolution passes to
-   // map back to tyty nodes
-   std::vector<AST::Type *> &get_builtin_types ();
- 
-   void push_new_name_rib (Rib *r);
-   void push_new_type_rib (Rib *r);
-   void push_new_label_rib (Rib *r);
-   void push_new_macro_rib (Rib *r);
- 
-   bool find_name_rib (NodeId id, Rib **rib);
-   bool find_type_rib (NodeId id, Rib **rib);
-   bool find_label_rib (NodeId id, Rib **rib);
-   bool find_macro_rib (NodeId id, Rib **rib);
- 
    void insert_resolved_name (NodeId refId, NodeId defId);
    bool lookup_resolved_name (NodeId refId, NodeId *defId);
  
    void insert_resolved_type (NodeId refId, NodeId defId);
    bool lookup_resolved_type (NodeId refId, NodeId *defId);
  
-   void insert_resolved_label (NodeId refId, NodeId defId);
-   bool lookup_resolved_label (NodeId refId, NodeId *defId);
- 
-   void insert_resolved_macro (NodeId refId, NodeId defId);
-   bool lookup_resolved_macro (NodeId refId, NodeId *defId);
- 
    void insert_resolved_misc (NodeId refId, NodeId defId);
    bool lookup_resolved_misc (NodeId refId, NodeId *defId);
  
-   // proxy for scoping
-   Scope &get_name_scope () { return name_scope; }
-   Scope &get_type_scope () { return type_scope; }
-   Scope &get_label_scope () { return label_scope; }
-   Scope &get_macro_scope () { return macro_scope; }
- 
-   NodeId get_global_type_node_id () { return global_type_node_id; }
- 
-   void set_unit_type_node_id (NodeId id) { unit_ty_node_id = id; }
-   NodeId get_unit_type_node_id () { return unit_ty_node_id; }
- 
-   void set_never_type_node_id (NodeId id) { never_ty_node_id = id; }
-   NodeId get_never_type_node_id () { return never_ty_node_id; }
- 
-   void push_new_module_scope (NodeId module_id)
-   {
-     current_module_stack.push_back (module_id);
-   }
- 
-   void pop_module_scope ()
-   {
-     rust_assert (!current_module_stack.empty ());
-     current_module_stack.pop_back ();
-   }
- 
-   NodeId peek_current_module_scope () const
-   {
-     rust_assert (!current_module_stack.empty ());
-     return current_module_stack.back ();
-   }
- 
-   NodeId peek_crate_module_scope () const
-   {
-     rust_assert (!current_module_stack.empty ());
-     return current_module_stack.front ();
-   }
- 
-   NodeId peek_parent_module_scope () const
-   {
-     rust_assert (current_module_stack.size () > 1);
-     return current_module_stack.at (current_module_stack.size () - 2);
-   }
- 
-   void push_closure_context (NodeId closure_expr_id);
-   void pop_closure_context ();
-   void insert_captured_item (NodeId id);
-   const std::set<NodeId> &get_captures (NodeId id) const;
- 
-   std::string as_debug_string () const
-   {
-     std::stringstream ss;
- 
-     ss << "Names:\n";
-     for (auto &n : name_ribs)
-       {
- 	ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
- 	   << "\n";
-       }
-     ss << "Types:\n";
-     for (auto &n : type_ribs)
-       {
- 	ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
- 	   << "\n";
-       }
-     ss << "Macros:\n";
- 
-     for (auto &n : macro_ribs)
-       {
- 	ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
- 	   << "\n";
-       }
- 
-     ss << "Labels:\n";
- 
-     for (auto &n : label_ribs)
-       {
- 	ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
- 	   << "\n";
-       }
- 
-     return ss.str ();
-   }
- 
- protected:
-   bool decl_needs_capture (NodeId decl_rib_node_id, NodeId closure_rib_node_id,
- 			   const Scope &scope);
- 
  private:
    Resolver ();
- 
-   void generate_builtins ();
-   NodeId setup_builtin (const std::string &name, TyTy::BaseType *tyty);
- 
-   Analysis::Mappings &mappings;
-   TypeCheckContext *tyctx;
- 
-   std::vector<AST::Type *> builtins;
- 
-   Scope name_scope;
-   Scope type_scope;
-   Scope label_scope;
-   Scope macro_scope;
- 
-   NodeId global_type_node_id;
-   NodeId unit_ty_node_id;
-   NodeId never_ty_node_id;
- 
-   // map a AST Node to a Rib
-   std::map<NodeId, Rib *> name_ribs;
-   std::map<NodeId, Rib *> type_ribs;
-   std::map<NodeId, Rib *> label_ribs;
-   std::map<NodeId, Rib *> macro_ribs;
- 
-   // Rust uses DefIds to namespace these under a crate_num
-   // but then it uses the def_collector to assign local_defids
-   // to each ast node as well. not sure if this is going to fit
-   // with gcc very well to compile a full crate in one go but we will
-   // see.
- 
-   // these are of the form ref->Def-NodeId
-   // we need two namespaces one for names and ones for types
-   std::map<NodeId, NodeId> resolved_names;
-   std::map<NodeId, NodeId> resolved_types;
-   std::map<NodeId, NodeId> resolved_labels;
-   std::map<NodeId, NodeId> resolved_macros;
- 
-   // misc
-   std::map<NodeId, NodeId> misc_resolved_items;
- 
-   // keep track of the current module scope ids
-   std::vector<NodeId> current_module_stack;
- 
-   // captured variables mappings
-   std::vector<NodeId> closure_context;
-   std::map<NodeId, std::set<NodeId>> closures_capture_mappings;
  };
  
  } // namespace Resolver
--- 124,140 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc gcc-16-20260419/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
*** gcc-16-20260412/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc	Sun Apr 19 22:32:07 2026
*************** TopLevel::TopLevel (NameResolutionContex
*** 33,42 ****
  template <typename T>
  void
  TopLevel::insert_enum_variant_or_error_out (const Identifier &identifier,
! 					    const T &node)
  {
    insert_enum_variant_or_error_out (identifier, node.get_locus (),
! 				    node.get_node_id ());
  }
  
  void
--- 33,42 ----
  template <typename T>
  void
  TopLevel::insert_enum_variant_or_error_out (const Identifier &identifier,
! 					    const T &node, bool is_also_value)
  {
    insert_enum_variant_or_error_out (identifier, node.get_locus (),
! 				    node.get_node_id (), is_also_value);
  }
  
  void
*************** TopLevel::check_multiple_insertion_error
*** 58,69 ****
  void
  TopLevel::insert_enum_variant_or_error_out (const Identifier &identifier,
  					    const location_t &locus,
! 					    const NodeId node_id)
  {
    // keep track of each node's location to provide useful errors
    node_locations.emplace (node_id, locus);
  
!   auto result = ctx.insert_variant (identifier, node_id);
    check_multiple_insertion_error (result, identifier, locus, node_id);
  }
  
--- 58,70 ----
  void
  TopLevel::insert_enum_variant_or_error_out (const Identifier &identifier,
  					    const location_t &locus,
! 					    const NodeId node_id,
! 					    bool is_also_value)
  {
    // keep track of each node's location to provide useful errors
    node_locations.emplace (node_id, locus);
  
!   auto result = ctx.insert_variant (identifier, node_id, is_also_value);
    check_multiple_insertion_error (result, identifier, locus, node_id);
  }
  
*************** TopLevel::visit (AST::Function &function
*** 240,245 ****
--- 241,248 ----
    insert_or_error_out (function.get_function_name (), function,
  		       Namespace::Values);
  
+   Analysis::Mappings::get ().add_function_node (function.get_node_id ());
+ 
    DefaultResolver::visit (function);
  }
  
*************** TopLevel::visit (AST::TupleStruct &tuple
*** 309,315 ****
  void
  TopLevel::visit (AST::EnumItem &variant)
  {
!   insert_enum_variant_or_error_out (variant.get_identifier (), variant);
  
    DefaultResolver::visit (variant);
  }
--- 312,318 ----
  void
  TopLevel::visit (AST::EnumItem &variant)
  {
!   insert_enum_variant_or_error_out (variant.get_identifier (), variant, true);
  
    DefaultResolver::visit (variant);
  }
*************** TopLevel::visit (AST::EnumItem &variant)
*** 317,323 ****
  void
  TopLevel::visit (AST::EnumItemTuple &variant)
  {
!   insert_enum_variant_or_error_out (variant.get_identifier (), variant);
  
    DefaultResolver::visit (variant);
  }
--- 320,326 ----
  void
  TopLevel::visit (AST::EnumItemTuple &variant)
  {
!   insert_enum_variant_or_error_out (variant.get_identifier (), variant, true);
  
    DefaultResolver::visit (variant);
  }
*************** TopLevel::visit (AST::EnumItemTuple &var
*** 325,331 ****
  void
  TopLevel::visit (AST::EnumItemStruct &variant)
  {
!   insert_enum_variant_or_error_out (variant.get_identifier (), variant);
  
    DefaultResolver::visit (variant);
  }
--- 328,334 ----
  void
  TopLevel::visit (AST::EnumItemStruct &variant)
  {
!   insert_enum_variant_or_error_out (variant.get_identifier (), variant, false);
  
    DefaultResolver::visit (variant);
  }
*************** TopLevel::visit (AST::EnumItemStruct &va
*** 333,339 ****
  void
  TopLevel::visit (AST::EnumItemDiscriminant &variant)
  {
!   insert_or_error_out (variant.get_identifier (), variant, Namespace::Types);
  
    DefaultResolver::visit (variant);
  }
--- 336,342 ----
  void
  TopLevel::visit (AST::EnumItemDiscriminant &variant)
  {
!   insert_enum_variant_or_error_out (variant.get_identifier (), variant, true);
  
    DefaultResolver::visit (variant);
  }
*************** flatten_glob (const AST::UseTreeGlob &gl
*** 501,507 ****
    if (glob.has_path ())
      paths.emplace_back (glob.get_path ());
    else
!     paths.emplace_back (AST::SimplePath ({}, false, glob.get_locus ()));
  }
  
  static bool
--- 504,512 ----
    if (glob.has_path ())
      paths.emplace_back (glob.get_path ());
    else
!     paths.emplace_back (AST::SimplePath (
!       {}, glob.get_glob_type () == AST::UseTreeGlob::PathType::GLOBAL,
!       glob.get_locus ()));
  }
  
  static bool
diff -Nrcpad gcc-16-20260412/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h gcc-16-20260419/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
*** gcc-16-20260412/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 142,152 ****
  
    template <typename T>
    void insert_enum_variant_or_error_out (const Identifier &identifier,
! 					 const T &node);
  
    void insert_enum_variant_or_error_out (const Identifier &identifier,
  					 const location_t &locus,
! 					 const NodeId node_id);
  
  private:
    // If a new export has been defined whilst visiting the visitor is considered
--- 142,153 ----
  
    template <typename T>
    void insert_enum_variant_or_error_out (const Identifier &identifier,
! 					 const T &node, bool is_also_value);
  
    void insert_enum_variant_or_error_out (const Identifier &identifier,
  					 const location_t &locus,
! 					 const NodeId node_id,
! 					 bool is_also_value);
  
  private:
    // If a new export has been defined whilst visiting the visitor is considered
diff -Nrcpad gcc-16-20260412/gcc/rust/rust-session-manager.cc gcc-16-20260419/gcc/rust/rust-session-manager.cc
*** gcc-16-20260412/gcc/rust/rust-session-manager.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/rust-session-manager.cc	Sun Apr 19 22:32:07 2026
***************
*** 60,65 ****
--- 60,67 ----
  #include "rust-borrow-checker.h"
  #include "rust-ast-validation.h"
  #include "rust-tyty-variance-analysis.h"
+ #include "rust-attribute-checker.h"
+ #include "rust-builtin-attribute-checker.h"
  
  #include "input.h"
  #include "selftest.h"
*************** Session::compile_crate (const char *file
*** 735,740 ****
--- 737,744 ----
  
    expansion (parsed_crate, name_resolution_ctx);
  
+   Analysis::BuiltinAttributeChecker ().go (parsed_crate);
+ 
    AST::CollectLangItems ().go (parsed_crate);
  
    rust_debug ("\033[0;31mSUCCESSFULLY FINISHED EXPANSION \033[0m");
diff -Nrcpad gcc-16-20260412/gcc/rust/typecheck/rust-hir-type-check-base.cc gcc-16-20260419/gcc/rust/typecheck/rust-hir-type-check-base.cc
*** gcc-16-20260412/gcc/rust/typecheck/rust-hir-type-check-base.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/typecheck/rust-hir-type-check-base.cc	Sun Apr 19 22:32:07 2026
*************** TypeCheckBase::parse_repr_options (const
*** 421,434 ****
  	  const AST::AttrInput &input = attr.get_attr_input ();
  	  bool is_token_tree = input.get_attr_input_type ()
  			       == AST::AttrInput::AttrInputType::TOKEN_TREE;
! 	  if (!is_token_tree)
  	    {
  	      rust_error_at (attr.get_locus (), "malformed %<repr%> attribute");
  	      continue;
  	    }
! 	  const auto &option = static_cast<const AST::DelimTokenTree &> (input);
! 	  AST::AttrInputMetaItemContainer *meta_items
! 	    = option.parse_to_meta_item ();
  
  	  if (meta_items == nullptr)
  	    {
--- 421,447 ----
  	  const AST::AttrInput &input = attr.get_attr_input ();
  	  bool is_token_tree = input.get_attr_input_type ()
  			       == AST::AttrInput::AttrInputType::TOKEN_TREE;
! 	  bool is_meta_item = input.get_attr_input_type ()
! 			      == AST::AttrInput::AttrInputType::META_ITEM;
! 	  if (!is_token_tree && !is_meta_item)
  	    {
  	      rust_error_at (attr.get_locus (), "malformed %<repr%> attribute");
  	      continue;
  	    }
! 
! 	  const AST::AttrInputMetaItemContainer *meta_items = nullptr;
! 	  if (is_token_tree)
! 	    {
! 	      const auto &option
! 		= static_cast<const AST::DelimTokenTree &> (input);
! 	      meta_items = option.parse_to_meta_item ();
! 	    }
! 	  else
! 	    { // is_meta_item is true
! 	      const auto &option
! 		= static_cast<const AST::AttrInputMetaItemContainer &> (input);
! 	      meta_items = new AST::AttrInputMetaItemContainer (option);
! 	    }
  
  	  if (meta_items == nullptr)
  	    {
diff -Nrcpad gcc-16-20260412/gcc/rust/typecheck/rust-hir-type-check-item.cc gcc-16-20260419/gcc/rust/typecheck/rust-hir-type-check-item.cc
*** gcc-16-20260412/gcc/rust/typecheck/rust-hir-type-check-item.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/typecheck/rust-hir-type-check-item.cc	Sun Apr 19 22:32:07 2026
*************** TypeCheckItem::visit (HIR::StructStruct
*** 283,295 ****
    RustIdent ident{path, struct_decl.get_locus ()};
  
    // its a single variant ADT
    std::vector<TyTy::VariantDef *> variants;
    variants.push_back (
      new TyTy::VariantDef (struct_decl.get_mappings ().get_hirid (),
  			  struct_decl.get_mappings ().get_defid (),
  			  struct_decl.get_identifier ().as_string (), ident,
! 			  TyTy::VariantDef::VariantType::STRUCT, tl::nullopt,
! 			  std::move (fields)));
  
    // Process #[repr(X)] attribute, if any
    const AST::AttrVec &attrs = struct_decl.get_outer_attrs ();
--- 283,297 ----
    RustIdent ident{path, struct_decl.get_locus ()};
  
    // its a single variant ADT
+   auto variant_type = struct_decl.is_unit_struct ()
+ 			? TyTy::VariantDef::VariantType::UNIT
+ 			: TyTy::VariantDef::VariantType::STRUCT;
    std::vector<TyTy::VariantDef *> variants;
    variants.push_back (
      new TyTy::VariantDef (struct_decl.get_mappings ().get_hirid (),
  			  struct_decl.get_mappings ().get_defid (),
  			  struct_decl.get_identifier ().as_string (), ident,
! 			  variant_type, tl::nullopt, std::move (fields)));
  
    // Process #[repr(X)] attribute, if any
    const AST::AttrVec &attrs = struct_decl.get_outer_attrs ();
diff -Nrcpad gcc-16-20260412/gcc/rust/typecheck/rust-hir-type-check-pattern.cc gcc-16-20260419/gcc/rust/typecheck/rust-hir-type-check-pattern.cc
*** gcc-16-20260412/gcc/rust/typecheck/rust-hir-type-check-pattern.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/typecheck/rust-hir-type-check-pattern.cc	Sun Apr 19 22:32:07 2026
*************** TypeCheckPattern::visit (HIR::PathInExpr
*** 73,79 ****
        HirId def_id = definition_id.value ();
  
        tl::optional<HIR::Item *> hir_item = mappings.lookup_hir_item (def_id);
!       // If the path refrerences an item, it must be constants or structs.
        if (hir_item.has_value ())
  	{
  	  HIR::Item *item = hir_item.value ();
--- 73,79 ----
        HirId def_id = definition_id.value ();
  
        tl::optional<HIR::Item *> hir_item = mappings.lookup_hir_item (def_id);
!       // If the path references an item, it must be constants or structs.
        if (hir_item.has_value ())
  	{
  	  HIR::Item *item = hir_item.value ();
*************** TypeCheckPattern::visit (HIR::PathInExpr
*** 127,133 ****
  	  rust_assert (ok);
  	}
  
!       if (variant->get_variant_type () != TyTy::VariantDef::VariantType::NUM)
  	{
  	  std::string variant_type = TyTy::VariantDef::variant_type_string (
  	    variant->get_variant_type ());
--- 127,135 ----
  	  rust_assert (ok);
  	}
  
!       if (variant->get_variant_type () != TyTy::VariantDef::VariantType::NUM
! 	  && variant->get_variant_type ()
! 	       != TyTy::VariantDef::VariantType::UNIT)
  	{
  	  std::string variant_type = TyTy::VariantDef::variant_type_string (
  	    variant->get_variant_type ());
*************** TypeCheckPattern::visit (HIR::PathInExpr
*** 135,141 ****
  	  rich_location rich_locus (line_table,
  				    pattern.get_final_segment ().get_locus ());
  	  rich_locus.add_fixit_replace (
! 	    "not a unit struct, unit variant or constatnt");
  	  rust_error_at (rich_locus, ErrorCode::E0532,
  			 "expected unit struct, unit variant or constant, "
  			 "found %s variant %<%s::%s%>",
--- 137,143 ----
  	  rich_location rich_locus (line_table,
  				    pattern.get_final_segment ().get_locus ());
  	  rich_locus.add_fixit_replace (
! 	    "not a unit struct, unit variant or constant");
  	  rust_error_at (rich_locus, ErrorCode::E0532,
  			 "expected unit struct, unit variant or constant, "
  			 "found %s variant %<%s::%s%>",
diff -Nrcpad gcc-16-20260412/gcc/rust/typecheck/rust-tyty-variance-analysis.cc gcc-16-20260419/gcc/rust/typecheck/rust-tyty-variance-analysis.cc
*** gcc-16-20260412/gcc/rust/typecheck/rust-tyty-variance-analysis.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/typecheck/rust-tyty-variance-analysis.cc	Sun Apr 19 22:32:07 2026
*************** GenericTyVisitorCtx::process_type (ADTTy
*** 241,247 ****
  
    for (const auto &variant : ty.get_variants ())
      {
!       if (variant->get_variant_type () != VariantDef::NUM)
  	{
  	  for (const auto &field : variant->get_fields ())
  	    add_constraints_from_ty (field->get_field_type (),
--- 241,248 ----
  
    for (const auto &variant : ty.get_variants ())
      {
!       if (variant->get_variant_type () != VariantDef::NUM
! 	  && variant->get_variant_type () != VariantDef::UNIT)
  	{
  	  for (const auto &field : variant->get_fields ())
  	    add_constraints_from_ty (field->get_field_type (),
diff -Nrcpad gcc-16-20260412/gcc/rust/typecheck/rust-tyty.cc gcc-16-20260419/gcc/rust/typecheck/rust-tyty.cc
*** gcc-16-20260412/gcc/rust/typecheck/rust-tyty.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/typecheck/rust-tyty.cc	Sun Apr 19 22:32:07 2026
*************** BaseType::contains_infer () const
*** 726,732 ****
  	{
  	  bool is_num_variant
  	    = variant->get_variant_type () == VariantDef::VariantType::NUM;
! 	  if (is_num_variant)
  	    continue;
  
  	  for (auto &field : variant->get_fields ())
--- 726,734 ----
  	{
  	  bool is_num_variant
  	    = variant->get_variant_type () == VariantDef::VariantType::NUM;
! 	  bool is_unit_variant
! 	    = variant->get_variant_type () == VariantDef::VariantType::UNIT;
! 	  if (is_num_variant || is_unit_variant)
  	    continue;
  
  	  for (auto &field : variant->get_fields ())
*************** BaseType::is_concrete () const
*** 831,837 ****
  	{
  	  bool is_num_variant
  	    = variant->get_variant_type () == VariantDef::VariantType::NUM;
! 	  if (is_num_variant)
  	    continue;
  
  	  for (auto &field : variant->get_fields ())
--- 833,841 ----
  	{
  	  bool is_num_variant
  	    = variant->get_variant_type () == VariantDef::VariantType::NUM;
! 	  bool is_unit_variant
! 	    = variant->get_variant_type () == VariantDef::VariantType::UNIT;
! 	  if (is_num_variant || is_unit_variant)
  	    continue;
  
  	  for (auto &field : variant->get_fields ())
*************** VariantDef::variant_type_string (Variant
*** 1508,1513 ****
--- 1512,1519 ----
        return "tuple";
      case STRUCT:
        return "struct";
+     case UNIT:
+       return "unit struct";
      }
    rust_unreachable ();
    return "";
*************** VariantDef::VariantDef (HirId id, DefId
*** 1532,1538 ****
      discriminant (std::move (discriminant)), fields (fields)
  {
    rust_assert ((type == VariantType::NUM && fields.empty ())
! 	       || (type == VariantType::TUPLE || type == VariantType::STRUCT));
  }
  
  VariantDef &
--- 1538,1545 ----
      discriminant (std::move (discriminant)), fields (fields)
  {
    rust_assert ((type == VariantType::NUM && fields.empty ())
! 	       || (type == VariantType::UNIT && fields.empty ())
! 	       || type == VariantType::TUPLE || type == VariantType::STRUCT);
  }
  
  VariantDef &
*************** ParamType::is_implicit_self_trait () con
*** 3517,3534 ****
  static std::string
  generate_tree_str (tree value)
  {
!   char *buf = nullptr;
!   size_t size = 0;
! 
!   FILE *stream = open_memstream (&buf, &size);
!   if (!stream)
!     return "<error>";
! 
!   print_generic_stmt (stream, value, TDF_NONE);
!   fclose (stream);
! 
!   std::string result = (buf ? std::string (buf, size) : "<error>");
!   free (buf);
  
    if (!result.empty () && result.back () == '\n')
      result.pop_back ();
--- 3524,3532 ----
  static std::string
  generate_tree_str (tree value)
  {
!   pretty_printer pp;
!   dump_generic_node (&pp, value, 0, TDF_NONE, true);
!   std::string result = pp_formatted_text (&pp);
  
    if (!result.empty () && result.back () == '\n')
      result.pop_back ();
diff -Nrcpad gcc-16-20260412/gcc/rust/typecheck/rust-tyty.h gcc-16-20260419/gcc/rust/typecheck/rust-tyty.h
*** gcc-16-20260412/gcc/rust/typecheck/rust-tyty.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/typecheck/rust-tyty.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 828,834 ****
    {
      NUM,
      TUPLE,
!     STRUCT
    };
  
    static std::string variant_type_string (VariantType type);
--- 828,835 ----
    {
      NUM,
      TUPLE,
!     STRUCT,
!     UNIT
    };
  
    static std::string variant_type_string (VariantType type);
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-attribute-values.h gcc-16-20260419/gcc/rust/util/rust-attribute-values.h
*** gcc-16-20260412/gcc/rust/util/rust-attribute-values.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-attribute-values.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 32,37 ****
--- 32,40 ----
    static constexpr auto &DERIVE_ATTR = "derive";
    static constexpr auto &DEPRECATED = "deprecated";
    static constexpr auto &ALLOW = "allow";
+   static constexpr auto &DENY = "deny";
+   static constexpr auto &WARN = "warn";
+   static constexpr auto &FORBID = "forbid";
    static constexpr auto &ALLOW_INTERNAL_UNSTABLE = "allow_internal_unstable";
    static constexpr auto &DOC = "doc";
    static constexpr auto &MUST_USE = "must_use";
*************** public:
*** 82,87 ****
--- 85,93 ----
    static constexpr auto &RUSTC_LAYOUT_SCALAR_VALID_RANGE_START
      = "rustc_layout_scalar_valid_range_start";
  
+   static constexpr auto &COMPILER_BUILTINS = "compiler_builtins";
+   static constexpr auto &NO_BUILTINS = "no_builtins";
+ 
    static constexpr auto &MAY_DANGLE = "may_dangle";
    static constexpr auto &PRELUDE_IMPORT = "prelude_import";
    static constexpr auto &TRACK_CALLER = "track_caller";
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-attributes.cc gcc-16-20260419/gcc/rust/util/rust-attributes.cc
*** gcc-16-20260412/gcc/rust/util/rust-attributes.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-attributes.cc	Sun Apr 19 22:32:07 2026
***************
*** 16,68 ****
  // along with GCC; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
- #include "rust-ast-visitor.h"
- #include "rust-system.h"
- #include "rust-session-manager.h"
  #include "rust-attributes.h"
  #include "rust-ast.h"
  #include "rust-ast-full.h"
- #include "rust-diagnostics.h"
- #include "rust-unicode.h"
  #include "rust-attribute-values.h"
  
  namespace Rust {
  namespace Analysis {
  
- bool
- Attributes::is_known (const std::string &attribute_path)
- {
-   const auto &lookup
-     = BuiltinAttributeMappings::get ()->lookup_builtin (attribute_path);
- 
-   return !lookup.is_error ();
- }
- 
- tl::optional<std::string>
- Attributes::extract_string_literal (const AST::Attribute &attr)
- {
-   if (!attr.has_attr_input ())
-     return tl::nullopt;
- 
-   auto &attr_input = attr.get_attr_input ();
- 
-   if (attr_input.get_attr_input_type ()
-       != AST::AttrInput::AttrInputType::LITERAL)
-     return tl::nullopt;
- 
-   auto &literal_expr
-     = static_cast<AST::AttrInputLiteral &> (attr_input).get_literal ();
- 
-   auto lit_type = literal_expr.get_lit_type ();
- 
-   // TODO: bring escape sequence handling out of lexing?
-   if (lit_type != AST::Literal::LitType::STRING
-       && lit_type != AST::Literal::LitType::RAW_STRING)
-     return tl::nullopt;
- 
-   return literal_expr.as_string ();
- }
- 
  using Attrs = Values::Attributes;
  
  // https://doc.rust-lang.org/stable/nightly-rustc/src/rustc_feature/builtin_attrs.rs.html#248
--- 16,29 ----
*************** static const BuiltinAttrDefinition __def
*** 122,127 ****
--- 83,90 ----
       {Attrs::RUSTC_LAYOUT_SCALAR_VALID_RANGE_START, CODE_GENERATION},
       // TODO: be careful about calling functions marked with this?
       {Attrs::RUSTC_ARGS_REQUIRED_CONST, CODE_GENERATION},
+      {Attrs::COMPILER_BUILTINS, CODE_GENERATION},
+      {Attrs::NO_BUILTINS, CODE_GENERATION},
       {Attrs::PRELUDE_IMPORT, NAME_RESOLUTION},
       {Attrs::RUSTC_DIAGNOSTIC_ITEM, STATIC_ANALYSIS},
       {Attrs::RUSTC_ON_UNIMPLEMENTED, STATIC_ANALYSIS},
*************** static const std::set<std::string> __out
*** 149,154 ****
--- 112,156 ----
       Attrs::LINK_NAME,
       Attrs::LINK_SECTION};
  
+ bool
+ Attributes::is_known (const std::string &attribute_path)
+ {
+   const auto &lookup
+     = BuiltinAttributeMappings::get ()->lookup_builtin (attribute_path);
+ 
+   return !lookup.is_error ();
+ }
+ 
+ bool
+ Attributes::valid_outer_attribute (const std::string &attribute_path)
+ {
+   return __outer_attributes.find (attribute_path) != __outer_attributes.cend ();
+ }
+ 
+ tl::optional<std::string>
+ Attributes::extract_string_literal (const AST::Attribute &attr)
+ {
+   if (!attr.has_attr_input ())
+     return tl::nullopt;
+ 
+   auto &attr_input = attr.get_attr_input ();
+ 
+   if (attr_input.get_attr_input_type ()
+       != AST::AttrInput::AttrInputType::LITERAL)
+     return tl::nullopt;
+ 
+   auto &literal_expr
+     = static_cast<AST::AttrInputLiteral &> (attr_input).get_literal ();
+ 
+   auto lit_type = literal_expr.get_lit_type ();
+ 
+   // TODO: bring escape sequence handling out of lexing?
+   if (lit_type != AST::Literal::LitType::STRING
+       && lit_type != AST::Literal::LitType::RAW_STRING)
+     return tl::nullopt;
+ 
+   return literal_expr.as_string ();
+ }
  BuiltinAttributeMappings *
  BuiltinAttributeMappings::get ()
  {
*************** BuiltinAttributeMappings::BuiltinAttribu
*** 179,206 ****
      }
  }
  
- AttributeChecker::AttributeChecker () {}
- 
- void
- AttributeChecker::go (AST::Crate &crate)
- {
-   visit (crate);
- }
- 
- void
- AttributeChecker::visit (AST::Crate &crate)
- {
-   for (auto &attr : crate.get_inner_attrs ())
-     {
-       check_inner_attribute (attr);
-     }
- 
-   for (auto &item : crate.items)
-     item->accept_vis (*this);
- }
- 
  tl::optional<BuiltinAttrDefinition>
! identify_builtin (const AST::Attribute &attribute)
  {
    auto &segments = attribute.get_path ().get_segments ();
  
--- 181,188 ----
      }
  }
  
  tl::optional<BuiltinAttrDefinition>
! lookup_builtin (const AST::Attribute &attribute)
  {
    auto &segments = attribute.get_path ().get_segments ();
  
*************** identify_builtin (const AST::Attribute &
*** 214,1421 ****
      segments.at (0).get_segment_name ());
  }
  
- /**
-  * Check that the string given to #[doc(alias = ...)] or #[doc(alias(...))] is
-  * valid.
-  *
-  * This means no whitespace characters other than spaces and no quoting
-  * characters.
-  */
- static void
- check_doc_alias (const std::string &alias_input, const location_t locus)
- {
-   // FIXME: The locus here is for the whole attribute. Can we get the locus
-   // of the alias input instead?
-   for (auto c : alias_input)
-     if ((ISSPACE (c) && c != ' ') || c == '\'' || c == '\"')
-       {
- 	auto to_print = std::string (1, c);
- 	switch (c)
- 	  {
- 	  case '\n':
- 	    to_print = "\\n";
- 	    break;
- 	  case '\t':
- 	    to_print = "\\t";
- 	    break;
- 	  default:
- 	    break;
- 	  }
- 	rust_error_at (locus,
- 		       "invalid character used in %<#[doc(alias)]%> input: %qs",
- 		       to_print.c_str ());
-       }
- 
-   if (alias_input.empty ())
-     return;
- 
-   if (alias_input.front () == ' ' || alias_input.back () == ' ')
-     rust_error_at (locus,
- 		   "%<#[doc(alias)]%> input cannot start or end with a space");
- }
- 
- static void
- check_doc_attribute (const AST::Attribute &attribute)
- {
-   if (!attribute.has_attr_input ())
-     {
-       rust_error_at (
- 	attribute.get_locus (),
- 	"valid forms for the attribute are "
- 	"%<#[doc(hidden|inline|...)]%> and %<#[doc = \" string \"]%>");
-       return;
-     }
- 
-   switch (attribute.get_attr_input ().get_attr_input_type ())
-     {
-     case AST::AttrInput::LITERAL:
-     case AST::AttrInput::MACRO:
-     case AST::AttrInput::META_ITEM:
-     case AST::AttrInput::EXPR:
-       break;
-       // FIXME: Handle them as well
- 
-     case AST::AttrInput::TOKEN_TREE:
-       {
- 	// FIXME: This doesn't check for #[doc(alias(...))]
- 	const auto &option = static_cast<const AST::DelimTokenTree &> (
- 	  attribute.get_attr_input ());
- 	auto *meta_item = option.parse_to_meta_item ();
- 
- 	for (auto &item : meta_item->get_items ())
- 	  {
- 	    if (item->is_key_value_pair ())
- 	      {
- 		auto name_value
- 		  = static_cast<AST::MetaNameValueStr *> (item.get ())
- 		      ->get_name_value_pair ();
- 
- 		// FIXME: Check for other stuff than #[doc(alias = ...)]
- 		if (name_value.first.as_string () == "alias")
- 		  check_doc_alias (name_value.second, attribute.get_locus ());
- 	      }
- 	  }
- 	break;
-       }
-     }
- }
- 
- static void
- check_deprecated_attribute (const AST::Attribute &attribute)
- {
-   if (!attribute.has_attr_input ())
-     return;
- 
-   const auto &input = attribute.get_attr_input ();
- 
-   if (input.get_attr_input_type () != AST::AttrInput::META_ITEM)
-     return;
- 
-   auto &meta = static_cast<const AST::AttrInputMetaItemContainer &> (input);
- 
-   for (auto &current : meta.get_items ())
-     {
-       switch (current->get_kind ())
- 	{
- 	case AST::MetaItemInner::Kind::MetaItem:
- 	  {
- 	    auto *meta_item = static_cast<AST::MetaItem *> (current.get ());
- 
- 	    switch (meta_item->get_item_kind ())
- 	      {
- 	      case AST::MetaItem::ItemKind::NameValueStr:
- 		{
- 		  auto *nv = static_cast<AST::MetaNameValueStr *> (meta_item);
- 
- 		  const std::string key = nv->get_name ().as_string ();
- 
- 		  if (key != "since" && key != "note")
- 		    {
- 		      rust_error_at (nv->get_locus (), "unknown meta item %qs",
- 				     key.c_str ());
- 		      rust_inform (nv->get_locus (),
- 				   "expected one of %<since%>, %<note%>");
- 		    }
- 		}
- 		break;
- 
- 	      case AST::MetaItem::ItemKind::Path:
- 		{
- 		  // #[deprecated(a,a)]
- 		  auto *p = static_cast<AST::MetaItemPath *> (meta_item);
- 
- 		  std::string ident = p->get_path ().as_string ();
- 
- 		  rust_error_at (p->get_locus (), "unknown meta item %qs",
- 				 ident.c_str ());
- 		  rust_inform (p->get_locus (),
- 			       "expected one of %<since%>, %<note%>");
- 		}
- 		break;
- 
- 	      case AST::MetaItem::ItemKind::Word:
- 		{
- 		  // #[deprecated("a")]
- 		  auto *w = static_cast<AST::MetaWord *> (meta_item);
- 
- 		  rust_error_at (
- 		    w->get_locus (),
- 		    "item in %<deprecated%> must be a key/value pair");
- 		}
- 		break;
- 
- 	      case AST::MetaItem::ItemKind::PathExpr:
- 		{
- 		  // #[deprecated(since=a)]
- 		  auto *px = static_cast<AST::MetaItemPathExpr *> (meta_item);
- 
- 		  rust_error_at (
- 		    px->get_locus (),
- 		    "expected unsuffixed literal or identifier, found %qs",
- 		    px->get_expr ().as_string ().c_str ());
- 		}
- 		break;
- 
- 	      case AST::MetaItem::ItemKind::Seq:
- 	      case AST::MetaItem::ItemKind::ListPaths:
- 	      case AST::MetaItem::ItemKind::ListNameValueStr:
- 	      default:
- 		gcc_unreachable ();
- 		break;
- 	      }
- 	  }
- 	  break;
- 
- 	case AST::MetaItemInner::Kind::LitExpr:
- 	default:
- 	  gcc_unreachable ();
- 	  break;
- 	}
-     }
- }
- 
- /**
-  * Emit an error when an attribute is attached
-  * to an incompatable item type. e.g.:
-  *
-  * #[cold]
-  * struct A(u8, u8);
-  *
-  * Note that "#[derive]" is handled
-  * explicitly in rust-derive.cc
-  */
- static void
- check_valid_attribute_for_item (const AST::Attribute &attr,
- 				const AST::Item &item)
- {
-   if (item.get_item_kind () != AST::Item::Kind::Function
-       && (attr.get_path () == Values::Attributes::TARGET_FEATURE
- 	  || attr.get_path () == Values::Attributes::COLD
- 	  || attr.get_path () == Values::Attributes::INLINE))
-     {
-       rust_error_at (attr.get_locus (),
- 		     "the %<#[%s]%> attribute may only be applied to functions",
- 		     attr.get_path ().as_string ().c_str ());
-     }
-   else if (attr.get_path () == Values::Attributes::REPR
- 	   && item.get_item_kind () != AST::Item::Kind::Enum
- 	   && item.get_item_kind () != AST::Item::Kind::Union
- 	   && item.get_item_kind () != AST::Item::Kind::Struct)
-     {
-       rust_error_at (attr.get_locus (),
- 		     "the %<#[%s]%> attribute may only be applied "
- 		     "to structs, enums and unions",
- 		     attr.get_path ().as_string ().c_str ());
-     }
- }
- 
- static bool
- is_proc_macro_type (const AST::Attribute &attribute)
- {
-   auto result_opt = identify_builtin (attribute);
-   if (!result_opt.has_value ())
-     return false;
-   auto result = result_opt.value ();
- 
-   auto name = result.name;
-   return name == Attrs::PROC_MACRO || name == Attrs::PROC_MACRO_DERIVE
- 	 || name == Attrs::PROC_MACRO_ATTRIBUTE;
- }
- 
- // Emit an error when one encountered attribute is either #[proc_macro],
- // #[proc_macro_attribute] or #[proc_macro_derive]
- static void
- check_proc_macro_non_function (const AST::Attribute &attr)
- {
-   if (is_proc_macro_type (attr))
-     rust_error_at (attr.get_locus (),
- 		   "the %<#[%s]%> attribute may only be used on bare functions",
- 		   attr.get_path ().get_segments ()[0].as_string ().c_str ());
- }
- 
- // Emit an error when one attribute is either proc_macro, proc_macro_attribute
- // or proc_macro_derive
- static void
- check_proc_macro_non_root (const AST::Attribute &attr, location_t loc)
- {
-   if (is_proc_macro_type (attr))
-     {
-       rust_error_at (
- 	loc,
- 	"functions tagged with %<#[%s]%> must currently "
- 	"reside in the root of the crate",
- 	attr.get_path ().get_segments ().at (0).as_string ().c_str ());
-     }
- }
- 
- void
- AttributeChecker::check_inner_attribute (const AST::Attribute &attribute)
- {
-   auto result_opt = identify_builtin (attribute);
-   if (!result_opt.has_value ())
-     return;
-   auto result = result_opt.value ();
- 
-   if (__outer_attributes.find (result.name) != __outer_attributes.end ())
-     rust_error_at (attribute.get_locus (),
- 		   "attribute cannot be used at crate level");
- }
- 
- static void
- check_link_section_attribute (const AST::Attribute &attribute)
- {
-   if (!attribute.has_attr_input ())
-     {
-       rust_error_at (attribute.get_locus (),
- 		     "malformed %<link_section%> attribute input");
-       rust_inform (attribute.get_locus (),
- 		   "must be of the form: %<#[link_section = \"name\"]%>");
-     }
- }
- 
- static void
- check_export_name_attribute (const AST::Attribute &attribute)
- {
-   if (!attribute.has_attr_input ())
-     {
-       rust_error_at (attribute.get_locus (),
- 		     "malformed %<export_name%> attribute input");
-       rust_inform (attribute.get_locus (),
- 		   "must be of the form: %<#[export_name = \"name\"]%>");
-       return;
-     }
- 
-   // We don't support the whole extended_key_value_attributes feature, we only
-   // support a subset for macros. We need to emit an error message when the
-   // attribute does not contain a macro or a string literal.
-   if (attribute.has_attr_input ())
-     {
-       auto &attr_input = attribute.get_attr_input ();
-       switch (attr_input.get_attr_input_type ())
- 	{
- 	case AST::AttrInput::AttrInputType::LITERAL:
- 	  {
- 	    auto &literal_expr
- 	      = static_cast<AST::AttrInputLiteral &> (attr_input)
- 		  .get_literal ();
- 	    auto lit_type = literal_expr.get_lit_type ();
- 	    switch (lit_type)
- 	      {
- 	      case AST::Literal::LitType::STRING:
- 	      case AST::Literal::LitType::RAW_STRING:
- 	      case AST::Literal::LitType::BYTE_STRING:
- 		return;
- 	      default:
- 		break;
- 	      }
- 	    break;
- 	  }
- 	case AST::AttrInput::AttrInputType::MACRO:
- 	  return;
- 	default:
- 	  break;
- 	}
-     }
-   rust_error_at (attribute.get_locus (), "attribute must be a string literal");
- }
- 
- static void
- check_lint_attribute (const AST::Attribute &attribute, const char *name)
- {
-   if (!attribute.has_attr_input ())
-     {
-       rust_error_at (attribute.get_locus (), "malformed %qs attribute input",
- 		     name);
-       rust_inform (attribute.get_locus (),
- 		   "must be of the form: %<#[%s(lint1, lint2, ...)]%>", name);
-     }
- }
- 
- void
- AttributeChecker::visit (AST::Attribute &attribute)
- {
-   auto &session = Session::get_instance ();
-   if (attribute.get_path () == Values::Attributes::CFG_ATTR)
-     {
-       if (!attribute.is_parsed_to_meta_item ())
- 	attribute.parse_attr_to_meta_item ();
-       if (!attribute.check_cfg_predicate (session))
- 	return; // Do not emit errors for attribute that'll get stripped.
-     }
- 
-   if (auto builtin = identify_builtin (attribute))
-     {
-       auto result = builtin.value ();
-       // TODO: Add checks here for each builtin attribute
-       // TODO: Have an enum of builtins as well, switching on strings is
-       // annoying and costly
-       if (result.name == Attrs::DOC)
- 	check_doc_attribute (attribute);
-       else if (result.name == Attrs::DEPRECATED)
- 	check_deprecated_attribute (attribute);
-     }
- 
-   AST::DefaultASTVisitor::visit (attribute);
- }
- 
- void
- AttributeChecker::visit (AST::Token &)
- {}
- 
- void
- AttributeChecker::visit (AST::DelimTokenTree &)
- {}
- 
- void
- AttributeChecker::visit (AST::IdentifierExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::Lifetime &)
- {}
- 
- void
- AttributeChecker::visit (AST::LifetimeParam &)
- {}
- 
- void
- AttributeChecker::visit (AST::ConstGenericParam &)
- {}
- 
- // rust-path.h
- void
- AttributeChecker::visit (AST::PathInExpression &)
- {}
- 
- void
- AttributeChecker::visit (AST::TypePathSegment &)
- {}
- 
- void
- AttributeChecker::visit (AST::TypePathSegmentGeneric &)
- {}
- 
- void
- AttributeChecker::visit (AST::TypePathSegmentFunction &)
- {}
- 
- void
- AttributeChecker::visit (AST::TypePath &)
- {}
- 
- void
- AttributeChecker::visit (AST::QualifiedPathInExpression &)
- {}
- 
- void
- AttributeChecker::visit (AST::QualifiedPathInType &)
- {}
- 
- // rust-expr.h
- void
- AttributeChecker::visit (AST::LiteralExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::AttrInputLiteral &)
- {}
- 
- void
- AttributeChecker::visit (AST::AttrInputMacro &)
- {}
- 
- void
- AttributeChecker::visit (AST::MetaItemLitExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::MetaItemPathExpr &attribute)
- {
-   if (!attribute.get_expr ().is_literal ())
-     {
-       rust_error_at (attribute.get_expr ().get_locus (),
- 		     "malformed %<path%> attribute input");
-       rust_inform (attribute.get_expr ().get_locus (),
- 		   "must be of the form: %<#[path = \"file\"]%>");
-     }
- }
- 
- void
- AttributeChecker::visit (AST::BorrowExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::DereferenceExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ErrorPropagationExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::NegationExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ArithmeticOrLogicalExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ComparisonExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::LazyBooleanExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::TypeCastExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::AssignmentExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::CompoundAssignmentExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::GroupedExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ArrayElemsValues &)
- {}
- 
- void
- AttributeChecker::visit (AST::ArrayElemsCopied &)
- {}
- 
- void
- AttributeChecker::visit (AST::ArrayExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ArrayIndexExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::TupleExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::TupleIndexExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructExprStruct &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructExprFieldIdentifier &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructExprFieldIdentifierValue &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructExprFieldIndexValue &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructExprStructFields &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructExprStructBase &)
- {}
- 
- void
- AttributeChecker::visit (AST::CallExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::MethodCallExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::FieldAccessExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ClosureExprInner &)
- {}
- 
- void
- AttributeChecker::visit (AST::BlockExpr &expr)
- {
-   for (auto &stmt : expr.get_statements ())
-     {
-       if (stmt->get_stmt_kind () == AST::Stmt::Kind::Item)
- 	{
- 	  // Non owning pointer, let it go out of scope
- 	  auto item = static_cast<AST::Item *> (stmt.get ());
- 	  for (auto &attr : item->get_outer_attrs ())
- 	    check_proc_macro_non_root (attr, item->get_locus ());
- 	}
-     }
-   AST::DefaultASTVisitor::visit (expr);
- }
- 
- void
- AttributeChecker::visit (AST::ClosureExprInnerTyped &)
- {}
- 
- void
- AttributeChecker::visit (AST::ContinueExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::BreakExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangeFromToExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangeFromExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangeToExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangeFullExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangeFromToInclExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangeToInclExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ReturnExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::LoopExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::WhileLoopExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::WhileLetLoopExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::ForLoopExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::IfExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::IfExprConseqElse &)
- {}
- 
- void
- AttributeChecker::visit (AST::IfLetExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::IfLetExprConseqElse &)
- {}
- 
- void
- AttributeChecker::visit (AST::MatchExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::AwaitExpr &)
- {}
- 
- void
- AttributeChecker::visit (AST::AsyncBlockExpr &)
- {}
- 
- // rust-item.h
- void
- AttributeChecker::visit (AST::TypeParam &)
- {}
- 
- void
- AttributeChecker::visit (AST::LifetimeWhereClauseItem &)
- {}
- 
- void
- AttributeChecker::visit (AST::TypeBoundWhereClauseItem &)
- {}
- 
- void
- AttributeChecker::visit (AST::Module &module)
- {
-   for (auto &attr : module.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, module);
-       check_proc_macro_non_function (attr);
-     }
- 
-   for (auto &item : module.get_items ())
-     for (auto &attr : item->get_outer_attrs ())
-       check_proc_macro_non_root (attr, item->get_locus ());
- 
-   AST::DefaultASTVisitor::visit (module);
- }
- 
- void
- AttributeChecker::visit (AST::ExternCrate &crate)
- {
-   for (auto &attr : crate.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, crate);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- void
- AttributeChecker::visit (AST::UseTreeGlob &)
- {}
- 
- void
- AttributeChecker::visit (AST::UseTreeList &)
- {}
- 
- void
- AttributeChecker::visit (AST::UseTreeRebind &)
- {}
- 
- void
- AttributeChecker::visit (AST::UseDeclaration &declaration)
- {
-   for (auto &attr : declaration.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, declaration);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- static void
- check_no_mangle_function (const AST::Attribute &attribute,
- 			  const AST::Function &fun)
- {
-   if (attribute.has_attr_input ())
-     {
-       rust_error_at (attribute.get_locus (), ErrorCode::E0754,
- 		     "malformed %<no_mangle%> attribute input");
-       rust_inform (attribute.get_locus (),
- 		   "must be of the form: %<#[no_mangle]%>");
-     }
-   if (!is_ascii_only (fun.get_function_name ().as_string ()))
-     rust_error_at (fun.get_function_name ().get_locus (),
- 		   "the %<#[no_mangle]%> attribute requires ASCII identifier");
- }
- 
- void
- AttributeChecker::visit (AST::Function &fun)
- {
-   for (auto &attr : fun.get_outer_attrs ())
-     check_valid_attribute_for_item (attr, fun);
- 
-   auto check_crate_type = [] (const char *name, AST::Attribute &attribute) {
-     if (!Session::get_instance ().options.is_proc_macro ())
-       rust_error_at (attribute.get_locus (),
- 		     "the %<#[%s]%> attribute is only usable with crates of "
- 		     "the %<proc-macro%> crate type",
- 		     name);
-   };
- 
-   BuiltinAttrDefinition result;
-   for (auto &attribute : fun.get_outer_attrs ())
-     {
-       auto result = identify_builtin (attribute);
-       if (!result)
- 	return;
- 
-       auto name = result->name.c_str ();
- 
-       if (result->name == Attrs::PROC_MACRO_DERIVE)
- 	{
- 	  if (!attribute.has_attr_input ())
- 	    {
- 	      rust_error_at (attribute.get_locus (),
- 			     "malformed %qs attribute input", name);
- 	      rust_inform (
- 		attribute.get_locus (),
- 		"must be of the form: %<#[proc_macro_derive(TraitName, "
- 		"/*opt*/ attributes(name1, name2, ...))]%>");
- 	    }
- 	  check_crate_type (name, attribute);
- 	}
-       else if (result->name == Attrs::PROC_MACRO
- 	       || result->name == Attrs::PROC_MACRO_ATTRIBUTE)
- 	{
- 	  check_crate_type (name, attribute);
- 	}
-       else if (result->name == Attrs::TARGET_FEATURE)
- 	{
- 	  if (!attribute.has_attr_input ())
- 	    {
- 	      rust_error_at (attribute.get_locus (),
- 			     "malformed %<target_feature%> attribute input");
- 	      rust_inform (attribute.get_locus (),
- 			   "must be of the form: %<#[target_feature(enable = "
- 			   "\"name\")]%>");
- 	    }
- 	  else if (!fun.get_qualifiers ().is_unsafe ())
- 	    {
- 	      rust_error_at (
- 		attribute.get_locus (),
- 		"the %<#[target_feature]%> attribute can only be applied "
- 		"to %<unsafe%> functions");
- 	    }
- 	}
-       else if (result->name == Attrs::NO_MANGLE)
- 	{
- 	  if (attribute.has_attr_input ())
- 	    {
- 	      rust_error_at (attribute.get_locus (),
- 			     "malformed %<no_mangle%> attribute input");
- 	      rust_inform (attribute.get_locus (),
- 			   "must be of the form: %<#[no_mangle]%>");
- 	    }
- 	  else
- 	    check_no_mangle_function (attribute, fun);
- 	}
-       else if (result->name == Attrs::EXPORT_NAME)
- 	{
- 	  check_export_name_attribute (attribute);
- 	}
-       else if (result->name == Attrs::ALLOW || result->name == "deny"
- 	       || result->name == "warn" || result->name == "forbid")
- 	{
- 	  check_lint_attribute (attribute, name);
- 	}
-       else if (result->name == Attrs::LINK_NAME)
- 	{
- 	  if (!attribute.has_attr_input ())
- 	    {
- 	      rust_error_at (attribute.get_locus (),
- 			     "malformed %<link_name%> attribute input");
- 	      rust_inform (attribute.get_locus (),
- 			   "must be of the form: %<#[link_name = \"name\"]%>");
- 	    }
- 	}
-       else if (result->name == Attrs::LINK_SECTION)
- 	{
- 	  check_link_section_attribute (attribute);
- 	}
-     }
- 
-   if (fun.has_body ())
-     fun.get_definition ().value ()->accept_vis (*this);
- }
- 
- void
- AttributeChecker::visit (AST::TypeAlias &alias)
- {
-   for (auto &attr : alias.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, alias);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- void
- AttributeChecker::visit (AST::StructStruct &struct_item)
- {
-   for (auto &attr : struct_item.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, struct_item);
-       check_proc_macro_non_function (attr);
-     }
- 
-   AST::DefaultASTVisitor::visit (struct_item);
- }
- 
- void
- AttributeChecker::visit (AST::TupleStruct &tuplestruct)
- {
-   for (auto &attr : tuplestruct.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, tuplestruct);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- void
- AttributeChecker::visit (AST::EnumItem &)
- {}
- 
- void
- AttributeChecker::visit (AST::EnumItemTuple &)
- {}
- 
- void
- AttributeChecker::visit (AST::EnumItemStruct &)
- {}
- 
- void
- AttributeChecker::visit (AST::EnumItemDiscriminant &)
- {}
- 
- void
- AttributeChecker::visit (AST::Enum &enumeration)
- {
-   for (auto &attr : enumeration.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, enumeration);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- void
- AttributeChecker::visit (AST::Union &u)
- {
-   for (auto &attr : u.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, u);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- void
- AttributeChecker::visit (AST::ConstantItem &item)
- {
-   for (auto &attr : item.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, item);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- void
- AttributeChecker::visit (AST::StaticItem &item)
- {
-   for (auto &attr : item.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, item);
-       check_proc_macro_non_function (attr);
- 
-       if (auto result = identify_builtin (attr))
- 	{
- 	  if (result->name == Attrs::LINK_SECTION)
- 	    check_link_section_attribute (attr);
- 	  else if (result->name == Attrs::EXPORT_NAME)
- 	    check_export_name_attribute (attr);
- 	}
-     }
- }
- 
- void
- AttributeChecker::visit (AST::TraitItemType &)
- {}
- 
- void
- AttributeChecker::visit (AST::Trait &trait)
- {
-   for (auto &attr : trait.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, trait);
-       check_proc_macro_non_function (attr);
-     }
-   AST::DefaultASTVisitor::visit (trait);
- }
- 
- void
- AttributeChecker::visit (AST::InherentImpl &impl)
- {
-   for (auto &attr : impl.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, impl);
-       check_proc_macro_non_function (attr);
-     }
- 
-   AST::DefaultASTVisitor::visit (impl);
- }
- 
- void
- AttributeChecker::visit (AST::TraitImpl &impl)
- {
-   for (auto &attr : impl.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, impl);
-       check_proc_macro_non_function (attr);
-     }
-   AST::DefaultASTVisitor::visit (impl);
- }
- 
- void
- AttributeChecker::visit (AST::ExternalTypeItem &)
- {}
- 
- void
- AttributeChecker::visit (AST::ExternalStaticItem &)
- {}
- 
- void
- AttributeChecker::visit (AST::ExternBlock &block)
- {
-   for (auto &attr : block.get_outer_attrs ())
-     {
-       check_valid_attribute_for_item (attr, block);
-       check_proc_macro_non_function (attr);
-     }
- }
- 
- // rust-macro.h
- void
- AttributeChecker::visit (AST::MacroMatchFragment &)
- {}
- 
- void
- AttributeChecker::visit (AST::MacroMatchRepetition &)
- {}
- 
- void
- AttributeChecker::visit (AST::MacroMatcher &)
- {}
- 
- void
- AttributeChecker::visit (AST::MacroRulesDefinition &)
- {}
- 
- void
- AttributeChecker::visit (AST::MacroInvocation &)
- {}
- 
- void
- AttributeChecker::visit (AST::MetaItemPath &)
- {}
- 
- void
- AttributeChecker::visit (AST::MetaWord &)
- {}
- 
- void
- AttributeChecker::visit (AST::MetaNameValueStr &)
- {}
- 
- void
- AttributeChecker::visit (AST::MetaListPaths &)
- {}
- 
- void
- AttributeChecker::visit (AST::MetaListNameValueStr &)
- {}
- 
- // rust-pattern.h
- void
- AttributeChecker::visit (AST::LiteralPattern &)
- {}
- 
- void
- AttributeChecker::visit (AST::IdentifierPattern &)
- {}
- 
- void
- AttributeChecker::visit (AST::WildcardPattern &)
- {}
- 
- void
- AttributeChecker::visit (AST::RestPattern &)
- {}
- 
- // void AttributeChecker::visit(RangePatternBound& ){}
- 
- void
- AttributeChecker::visit (AST::RangePatternBoundLiteral &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangePatternBoundPath &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangePatternBoundQualPath &)
- {}
- 
- void
- AttributeChecker::visit (AST::RangePattern &)
- {}
- 
- void
- AttributeChecker::visit (AST::ReferencePattern &)
- {}
- 
- // void AttributeChecker::visit(StructPatternField& ){}
- 
- void
- AttributeChecker::visit (AST::StructPatternFieldTuplePat &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructPatternFieldIdentPat &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructPatternFieldIdent &)
- {}
- 
- void
- AttributeChecker::visit (AST::StructPattern &)
- {}
- 
- // void AttributeChecker::visit(TupleStructItems& ){}
- 
- void
- AttributeChecker::visit (AST::TupleStructItemsNoRest &)
- {}
- 
- void
- AttributeChecker::visit (AST::TupleStructItemsHasRest &)
- {}
- 
- void
- AttributeChecker::visit (AST::TupleStructPattern &)
- {}
- 
- // void AttributeChecker::visit(TuplePatternItems& ){}
- 
- void
- AttributeChecker::visit (AST::TuplePatternItemsNoRest &)
- {}
- 
- void
- AttributeChecker::visit (AST::TuplePatternItemsHasRest &)
- {}
- 
- void
- AttributeChecker::visit (AST::TuplePattern &)
- {}
- 
- void
- AttributeChecker::visit (AST::GroupedPattern &)
- {}
- 
- void
- AttributeChecker::visit (AST::SlicePattern &)
- {}
- 
- void
- AttributeChecker::visit (AST::AltPattern &)
- {}
- 
- // rust-stmt.h
- void
- AttributeChecker::visit (AST::EmptyStmt &)
- {}
- 
- void
- AttributeChecker::visit (AST::LetStmt &)
- {}
- 
- void
- AttributeChecker::visit (AST::ExprStmt &)
- {}
- 
- // rust-type.h
- void
- AttributeChecker::visit (AST::TraitBound &)
- {}
- 
- void
- AttributeChecker::visit (AST::ImplTraitType &)
- {}
- 
- void
- AttributeChecker::visit (AST::TraitObjectType &)
- {}
- 
- void
- AttributeChecker::visit (AST::ParenthesisedType &)
- {}
- 
- void
- AttributeChecker::visit (AST::ImplTraitTypeOneBound &)
- {}
- 
- void
- AttributeChecker::visit (AST::TraitObjectTypeOneBound &)
- {}
- 
- void
- AttributeChecker::visit (AST::TupleType &)
- {}
- 
- void
- AttributeChecker::visit (AST::NeverType &)
- {}
- 
- void
- AttributeChecker::visit (AST::RawPointerType &)
- {}
- 
- void
- AttributeChecker::visit (AST::ReferenceType &)
- {}
- 
- void
- AttributeChecker::visit (AST::ArrayType &)
- {}
- 
- void
- AttributeChecker::visit (AST::SliceType &)
- {}
- 
- void
- AttributeChecker::visit (AST::InferredType &)
- {}
- 
- void
- AttributeChecker::visit (AST::BareFunctionType &)
- {}
- 
- void
- AttributeChecker::visit (AST::SelfParam &)
- {}
- 
- void
- AttributeChecker::visit (AST::VariadicParam &)
- {}
- 
- void
- AttributeChecker::visit (AST::FunctionParam &)
- {}
- 
  } // namespace Analysis
  } // namespace Rust
--- 196,200 ----
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-attributes.h gcc-16-20260419/gcc/rust/util/rust-attributes.h
*** gcc-16-20260412/gcc/rust/util/rust-attributes.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-attributes.h	Sun Apr 19 22:32:07 2026
***************
*** 19,26 ****
  #define RUST_ATTRIBUTES_H
  
  #include "rust-ast.h"
! #include "rust-system.h"
! #include "rust-ast-visitor.h"
  
  namespace Rust {
  namespace Analysis {
--- 19,25 ----
  #define RUST_ATTRIBUTES_H
  
  #include "rust-ast.h"
! #include "optional.h"
  
  namespace Rust {
  namespace Analysis {
*************** class Attributes
*** 29,34 ****
--- 28,34 ----
  {
  public:
    static bool is_known (const std::string &attribute_path);
+   static bool valid_outer_attribute (const std::string &attribute_path);
    static tl::optional<std::string>
    extract_string_literal (const AST::Attribute &attr);
  };
*************** private:
*** 83,284 ****
    std::map<std::string, const BuiltinAttrDefinition> mappings;
  };
  
- /**
-  * Checks the validity of various attributes. The goal of this visitor is to
-  * make sure that attributes are applied in allowed contexts, for example to
-  * make sure that #[inline] is only applied to functions and closures, as well
-  * as checking the "arguments" or input given to these attributes, making sure
-  * it is appropriate and valid.
-  */
- class AttributeChecker : public AST::DefaultASTVisitor
- {
- public:
-   AttributeChecker ();
- 
-   /**
-    * Check all the attributes of all the items of a crate
-    */
-   void go (AST::Crate &crate);
- 
- private:
-   using AST::DefaultASTVisitor::visit;
- 
-   /* Check the validity of an inner attribute */
-   void check_inner_attribute (const AST::Attribute &attribute);
-   /* Check the validity of a given attribute */
- 
-   // rust-ast.h
-   void visit (AST::Attribute &attribute) override;
-   void visit (AST::Crate &crate) override;
-   void visit (AST::Token &tok) override;
-   void visit (AST::DelimTokenTree &delim_tok_tree) override;
-   void visit (AST::IdentifierExpr &ident_expr) override;
-   void visit (AST::Lifetime &lifetime) override;
-   void visit (AST::LifetimeParam &lifetime_param) override;
-   void visit (AST::ConstGenericParam &const_param) override;
- 
-   // rust-path.h
-   void visit (AST::PathInExpression &path) override;
-   void visit (AST::TypePathSegment &segment) override;
-   void visit (AST::TypePathSegmentGeneric &segment) override;
-   void visit (AST::TypePathSegmentFunction &segment) override;
-   void visit (AST::TypePath &path) override;
-   void visit (AST::QualifiedPathInExpression &path) override;
-   void visit (AST::QualifiedPathInType &path) override;
- 
-   // rust-expr.h
-   void visit (AST::LiteralExpr &expr) override;
-   void visit (AST::AttrInputLiteral &attr_input) override;
-   void visit (AST::AttrInputMacro &attr_input) override;
-   void visit (AST::MetaItemLitExpr &meta_item) override;
-   void visit (AST::MetaItemPathExpr &meta_item) override;
-   void visit (AST::BorrowExpr &expr) override;
-   void visit (AST::DereferenceExpr &expr) override;
-   void visit (AST::ErrorPropagationExpr &expr) override;
-   void visit (AST::NegationExpr &expr) override;
-   void visit (AST::ArithmeticOrLogicalExpr &expr) override;
-   void visit (AST::ComparisonExpr &expr) override;
-   void visit (AST::LazyBooleanExpr &expr) override;
-   void visit (AST::TypeCastExpr &expr) override;
-   void visit (AST::AssignmentExpr &expr) override;
-   void visit (AST::CompoundAssignmentExpr &expr) override;
-   void visit (AST::GroupedExpr &expr) override;
-   void visit (AST::ArrayElemsValues &elems) override;
-   void visit (AST::ArrayElemsCopied &elems) override;
-   void visit (AST::ArrayExpr &expr) override;
-   void visit (AST::ArrayIndexExpr &expr) override;
-   void visit (AST::TupleExpr &expr) override;
-   void visit (AST::TupleIndexExpr &expr) override;
-   void visit (AST::StructExprStruct &expr) override;
-   void visit (AST::StructExprFieldIdentifier &field) override;
-   void visit (AST::StructExprFieldIdentifierValue &field) override;
-   void visit (AST::StructExprFieldIndexValue &field) override;
-   void visit (AST::StructExprStructFields &expr) override;
-   void visit (AST::StructExprStructBase &expr) override;
-   void visit (AST::CallExpr &expr) override;
-   void visit (AST::MethodCallExpr &expr) override;
-   void visit (AST::FieldAccessExpr &expr) override;
-   void visit (AST::ClosureExprInner &expr) override;
-   void visit (AST::BlockExpr &expr) override;
-   void visit (AST::ClosureExprInnerTyped &expr) override;
-   void visit (AST::ContinueExpr &expr) override;
-   void visit (AST::BreakExpr &expr) override;
-   void visit (AST::RangeFromToExpr &expr) override;
-   void visit (AST::RangeFromExpr &expr) override;
-   void visit (AST::RangeToExpr &expr) override;
-   void visit (AST::RangeFullExpr &expr) override;
-   void visit (AST::RangeFromToInclExpr &expr) override;
-   void visit (AST::RangeToInclExpr &expr) override;
-   void visit (AST::ReturnExpr &expr) override;
-   void visit (AST::LoopExpr &expr) override;
-   void visit (AST::WhileLoopExpr &expr) override;
-   void visit (AST::WhileLetLoopExpr &expr) override;
-   void visit (AST::ForLoopExpr &expr) override;
-   void visit (AST::IfExpr &expr) override;
-   void visit (AST::IfExprConseqElse &expr) override;
-   void visit (AST::IfLetExpr &expr) override;
-   void visit (AST::IfLetExprConseqElse &expr) override;
-   void visit (AST::MatchExpr &expr) override;
-   void visit (AST::AwaitExpr &expr) override;
-   void visit (AST::AsyncBlockExpr &expr) override;
- 
-   // rust-item.h
-   void visit (AST::TypeParam &param) override;
-   void visit (AST::LifetimeWhereClauseItem &item) override;
-   void visit (AST::TypeBoundWhereClauseItem &item) override;
-   void visit (AST::Module &module) override;
-   void visit (AST::ExternCrate &crate) override;
-   void visit (AST::UseTreeGlob &use_tree) override;
-   void visit (AST::UseTreeList &use_tree) override;
-   void visit (AST::UseTreeRebind &use_tree) override;
-   void visit (AST::UseDeclaration &use_decl) override;
-   void visit (AST::Function &function) override;
-   void visit (AST::TypeAlias &type_alias) override;
-   void visit (AST::StructStruct &struct_item) override;
-   void visit (AST::TupleStruct &tuple_struct) override;
-   void visit (AST::EnumItem &item) override;
-   void visit (AST::EnumItemTuple &item) override;
-   void visit (AST::EnumItemStruct &item) override;
-   void visit (AST::EnumItemDiscriminant &item) override;
-   void visit (AST::Enum &enum_item) override;
-   void visit (AST::Union &union_item) override;
-   void visit (AST::ConstantItem &const_item) override;
-   void visit (AST::StaticItem &static_item) override;
-   void visit (AST::TraitItemType &item) override;
-   void visit (AST::Trait &trait) override;
-   void visit (AST::InherentImpl &impl) override;
-   void visit (AST::TraitImpl &impl) override;
-   void visit (AST::ExternalTypeItem &item) override;
-   void visit (AST::ExternalStaticItem &item) override;
-   void visit (AST::ExternBlock &block) override;
- 
-   // rust-macro.h
-   void visit (AST::MacroMatchFragment &match) override;
-   void visit (AST::MacroMatchRepetition &match) override;
-   void visit (AST::MacroMatcher &matcher) override;
-   void visit (AST::MacroRulesDefinition &rules_def) override;
-   void visit (AST::MacroInvocation &macro_invoc) override;
-   void visit (AST::MetaItemPath &meta_item) override;
-   void visit (AST::MetaWord &meta_item) override;
-   void visit (AST::MetaNameValueStr &meta_item) override;
-   void visit (AST::MetaListPaths &meta_item) override;
-   void visit (AST::MetaListNameValueStr &meta_item) override;
- 
-   // rust-pattern.h
-   void visit (AST::LiteralPattern &pattern) override;
-   void visit (AST::IdentifierPattern &pattern) override;
-   void visit (AST::WildcardPattern &pattern) override;
-   void visit (AST::RestPattern &pattern) override;
-   // void visit(RangePatternBound& bound) override;
-   void visit (AST::RangePatternBoundLiteral &bound) override;
-   void visit (AST::RangePatternBoundPath &bound) override;
-   void visit (AST::RangePatternBoundQualPath &bound) override;
-   void visit (AST::RangePattern &pattern) override;
-   void visit (AST::ReferencePattern &pattern) override;
-   // void visit(StructPatternField& field) override;
-   void visit (AST::StructPatternFieldTuplePat &field) override;
-   void visit (AST::StructPatternFieldIdentPat &field) override;
-   void visit (AST::StructPatternFieldIdent &field) override;
-   void visit (AST::StructPattern &pattern) override;
-   // void visit(TupleStructItems& tuple_items) override;
-   void visit (AST::TupleStructItemsNoRest &tuple_items) override;
-   void visit (AST::TupleStructItemsHasRest &tuple_items) override;
-   void visit (AST::TupleStructPattern &pattern) override;
-   // void visit(TuplePatternItems& tuple_items) override;
-   void visit (AST::TuplePatternItemsNoRest &tuple_items) override;
-   void visit (AST::TuplePatternItemsHasRest &tuple_items) override;
-   void visit (AST::TuplePattern &pattern) override;
-   void visit (AST::GroupedPattern &pattern) override;
-   void visit (AST::SlicePattern &pattern) override;
-   void visit (AST::AltPattern &pattern) override;
- 
-   // rust-stmt.h
-   void visit (AST::EmptyStmt &stmt) override;
-   void visit (AST::LetStmt &stmt) override;
-   void visit (AST::ExprStmt &stmt) override;
- 
-   // rust-type.h
-   void visit (AST::TraitBound &bound) override;
-   void visit (AST::ImplTraitType &type) override;
-   void visit (AST::TraitObjectType &type) override;
-   void visit (AST::ParenthesisedType &type) override;
-   void visit (AST::ImplTraitTypeOneBound &type) override;
-   void visit (AST::TraitObjectTypeOneBound &type) override;
-   void visit (AST::TupleType &type) override;
-   void visit (AST::NeverType &type) override;
-   void visit (AST::RawPointerType &type) override;
-   void visit (AST::ReferenceType &type) override;
-   void visit (AST::ArrayType &type) override;
-   void visit (AST::SliceType &type) override;
-   void visit (AST::InferredType &type) override;
-   void visit (AST::BareFunctionType &type) override;
-   void visit (AST::FunctionParam &param) override;
-   void visit (AST::VariadicParam &param) override;
-   void visit (AST::SelfParam &param) override;
- };
- 
  tl::optional<BuiltinAttrDefinition>
! identify_builtin (const AST::Attribute &attribute);
  
  } // namespace Analysis
  } // namespace Rust
--- 83,90 ----
    std::map<std::string, const BuiltinAttrDefinition> mappings;
  };
  
  tl::optional<BuiltinAttrDefinition>
! lookup_builtin (const AST::Attribute &attribute);
  
  } // namespace Analysis
  } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-common.h gcc-16-20260419/gcc/rust/util/rust-common.h
*** gcc-16-20260412/gcc/rust/util/rust-common.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-common.h	Sun Apr 19 22:32:07 2026
*************** enum class Async
*** 48,53 ****
--- 48,59 ----
    No
  };
  
+ enum class Default
+ {
+   Yes,
+   No
+ };
+ 
  enum BoundPolarity
  {
    RegularBound,
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-ggc.h gcc-16-20260419/gcc/rust/util/rust-ggc.h
*** gcc-16-20260412/gcc/rust/util/rust-ggc.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-ggc.h	Sun Apr 19 22:32:07 2026
*************** operator== (const std::string &a, const
*** 60,65 ****
--- 60,103 ----
    return b == a;
  }
  
+ class ChainList
+ {
+   tree head;
+   tree *tail_cdr;
+ 
+ public:
+   ChainList () : head (NULL_TREE), tail_cdr (&head) {}
+ 
+   ChainList (ChainList &&oth)
+   {
+     head = oth.head;
+     if (oth.tail_cdr == &oth.head)
+       tail_cdr = &oth.head;
+     else
+       tail_cdr = oth.tail_cdr;
+     oth.head = NULL_TREE;
+     oth.tail_cdr = &oth.head;
+   }
+ 
+   ChainList &operator= (ChainList &&oth)
+   {
+     this->~ChainList ();
+     new (this) ChainList (std::move (oth));
+     return *this;
+   }
+ 
+   tree get_head () const { return head; }
+ 
+   // TREE_CHAIN (ent) will be modified
+   // making ent a node in this list
+   // do not push a single tree to multiple ChainList objects
+   void push_back (tree ent)
+   {
+     *tail_cdr = ent;
+     tail_cdr = &TREE_CHAIN (ent);
+   }
+ };
+ 
  } // namespace GGC
  
  } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-hir-map.cc gcc-16-20260419/gcc/rust/util/rust-hir-map.cc
*** gcc-16-20260412/gcc/rust/util/rust-hir-map.cc	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-hir-map.cc	Sun Apr 19 22:32:07 2026
*************** Mappings::is_derived_node (NodeId node_i
*** 1382,1386 ****
--- 1382,1398 ----
    return derived_nodes.find (node_id) != derived_nodes.end ();
  }
  
+ void
+ Mappings::add_function_node (NodeId node_id)
+ {
+   function_nodes.insert (node_id);
+ }
+ 
+ bool
+ Mappings::is_function_node (NodeId node_id)
+ {
+   return function_nodes.find (node_id) != function_nodes.end ();
+ }
+ 
  } // namespace Analysis
  } // namespace Rust
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-hir-map.h gcc-16-20260419/gcc/rust/util/rust-hir-map.h
*** gcc-16-20260412/gcc/rust/util/rust-hir-map.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-hir-map.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 353,358 ****
--- 353,361 ----
    void add_derived_node (NodeId node_id);
    bool is_derived_node (NodeId node_id);
  
+   void add_function_node (NodeId node_id);
+   bool is_function_node (NodeId node_id);
+ 
  private:
    Mappings ();
  
*************** private:
*** 450,455 ****
--- 453,460 ----
    std::unordered_map<NodeId, std::vector<NodeId>> captures;
  
    std::set<NodeId> derived_nodes;
+ 
+   std::set<NodeId> function_nodes;
  };
  
  } // namespace Analysis
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-intrinsic-values.h gcc-16-20260419/gcc/rust/util/rust-intrinsic-values.h
*** gcc-16-20260412/gcc/rust/util/rust-intrinsic-values.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-intrinsic-values.h	Sun Apr 19 22:32:07 2026
*************** public:
*** 81,87 ****
--- 81,89 ----
    static constexpr auto &CALLER_LOCATION = "caller_location";
    static constexpr auto &CTPOP = "ctpop";
    static constexpr auto &CTLZ = "ctlz";
+   static constexpr auto &CTLZ_NONZERO = "ctlz_nonzero";
    static constexpr auto &CTTZ = "cttz";
+   static constexpr auto &CTTZ_NONZERO = "cttz_nonzero";
    static constexpr auto &BSWAP = "bswap";
    static constexpr auto &BITREVERSE = "bitreverse";
    static constexpr auto &TYPE_ID = "type_id";
diff -Nrcpad gcc-16-20260412/gcc/rust/util/rust-unwrap-segment.h gcc-16-20260419/gcc/rust/util/rust-unwrap-segment.h
*** gcc-16-20260412/gcc/rust/util/rust-unwrap-segment.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/rust/util/rust-unwrap-segment.h	Sun Apr 19 22:32:07 2026
***************
*** 16,21 ****
--- 16,24 ----
  // along with GCC; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
+ #ifndef RUST_UNWRAP_SEGMENT_H
+ #define RUST_UNWRAP_SEGMENT_H
+ 
  #include "rust-system.h"
  #include "optional.h"
  #include "rust-lang-item.h"
*************** unwrap_segment_error_string (const AST::
*** 136,138 ****
--- 139,143 ----
  }
  
  } // namespace Rust
+ 
+ #endif // RUST_UNWRAP_SEGMENT_H
diff -Nrcpad gcc-16-20260412/gcc/target.def gcc-16-20260419/gcc/target.def
*** gcc-16-20260412/gcc/target.def	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/target.def	Sun Apr 19 22:32:07 2026
*************** DEFHOOK
*** 4910,4916 ****
  (promote_prototypes,
   "This target hook returns @code{true} if an argument declared in a\n\
  prototype as an integral type smaller than @code{int} should actually be\n\
! passed as an @code{int}.  In addition to avoiding errors in certain\n\
  cases of mismatch, it also makes for better code on certain machines.\n\
  The default is to not promote prototypes.",
   bool, (const_tree fntype),
--- 4910,4917 ----
  (promote_prototypes,
   "This target hook returns @code{true} if an argument declared in a\n\
  prototype as an integral type smaller than @code{int} should actually be\n\
! passed as an @code{int}.  This also applies to the type of the first member\n\
! +in a transparent union argument.  In addition to avoiding errors in certain\n\
  cases of mismatch, it also makes for better code on certain machines.\n\
  The default is to not promote prototypes.",
   bool, (const_tree fntype),
diff -Nrcpad gcc-16-20260412/gcc/target.h gcc-16-20260419/gcc/target.h
*** gcc-16-20260412/gcc/target.h	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/target.h	Sun Apr 19 22:32:07 2026
*************** union cumulative_args_t { void *p; };
*** 68,80 ****
  
  #endif /* !CHECKING_P */
  
  /* Target properties of _BitInt(N) type.  _BitInt(N) is to be represented
     as series of abi_limb_mode CEIL (N, GET_MODE_PRECISION (abi_limb_mode))
     limbs, ordered from least significant to most significant if !big_endian,
     otherwise from most significant to least significant.  If extended is
!    false, the bits above or equal to N are undefined when stored in a register
!    or memory, otherwise they are zero or sign extended depending on if
!    it is unsigned _BitInt(N) or _BitInt(N) / signed _BitInt(N).
     limb_mode is either the same as abi_limb_mode, or some narrower mode
     in which _BitInt lowering should actually perform operations in and
     what libgcc _BitInt helpers should use.
--- 68,89 ----
  
  #endif /* !CHECKING_P */
  
+ /* Values for bitint_info::extended below.  */
+ 
+ enum bitint_ext { bitint_ext_undef, bitint_ext_partial, bitint_ext_full };
+ 
  /* Target properties of _BitInt(N) type.  _BitInt(N) is to be represented
     as series of abi_limb_mode CEIL (N, GET_MODE_PRECISION (abi_limb_mode))
     limbs, ordered from least significant to most significant if !big_endian,
     otherwise from most significant to least significant.  If extended is
!    bitint_ext_undef, the bits above or equal to N are undefined when stored in
!    a register or memory, if extended is bitint_ext_full, they are zero or sign
!    extended depending on if it is unsigned _BitInt(N) or
!    _BitInt(N) / signed _BitInt(N), if extended is bitint_ext_partial, then bits
!    above or equal to N and below
!    M = CEIL (N, GET_MODE_PRECISION (limb_mode)) * GET_MODE_PRECISION (limb_mode)
!    are zero or sign extended as specified above and bits above or equal to M
!    are undefined.
     limb_mode is either the same as abi_limb_mode, or some narrower mode
     in which _BitInt lowering should actually perform operations in and
     what libgcc _BitInt helpers should use.
*************** union cumulative_args_t { void *p; };
*** 87,93 ****
  struct bitint_info {
    machine_mode abi_limb_mode, limb_mode;
    bool big_endian;
!   bool extended;
  };
  
  /* Types of memory operation understood by the "by_pieces" infrastructure.
--- 96,102 ----
  struct bitint_info {
    machine_mode abi_limb_mode, limb_mode;
    bool big_endian;
!   enum bitint_ext extended;
  };
  
  /* Types of memory operation understood by the "by_pieces" infrastructure.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/ChangeLog gcc-16-20260419/gcc/testsuite/ChangeLog
*** gcc-16-20260412/gcc/testsuite/ChangeLog	Sun Apr 12 22:32:08 2026
--- gcc-16-20260419/gcc/testsuite/ChangeLog	Sun Apr 19 22:32:07 2026
***************
*** 1,3 ****
--- 1,558 ----
+ 2026-04-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/124922
+ 	* gdc.dg/pr124922.d: New test.
+ 
+ 2026-04-18  Gopi Kumar Bulusu  <gopi@sankhya.com>
+ 
+ 	PR target/103383
+ 	* gcc.target/microblaze/isa/pr103383.c: New test.
+ 
+ 2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/float_literal2.ads: New test.
+ 
+ 2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/float_literal1.ads: New test.
+ 
+ 2026-04-17  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/120098
+ 	* g++.dg/torture/pr120098.C: New test.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR fortran/108382
+ 	* gfortran.dg/goacc/omp-108382.f90: Move...
+ 	* gfortran.dg/goacc-gomp/pr108382.f90: ... here, and adjust.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR fortran/93463
+ 	* gfortran.dg/goacc/pr93463.f90: Move...
+ 	* gfortran.dg/goacc-gomp/pr93463.f90: ... here, and adjust.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR fortran/93329
+ 	* gfortran.dg/goacc/pr93329.f90: Move...
+ 	* gfortran.dg/goacc-gomp/pr93329.f90: ... here, and adjust.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR fortran/63858
+ 	* gfortran.dg/goacc/omp-fixed.f: Move...
+ 	* gfortran.dg/goacc-gomp/pr63858.f: ... here, and adjust.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* gfortran.dg/goacc/omp.f95: Move...
+ 	* gfortran.dg/goacc-gomp/nesting-fail-1.f95: ... here, and adjust.
+ 
+ 2026-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 	    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR libfortran/120431
+ 	PR fortran/120431
+ 	* gfortran.dg/spread_scalar_zerosize.f90: New testcase.
+ 
+ 2026-04-17  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* g++.dg/reflect/null6.C: New test.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* gcc.target/nvptx/march-map=sm_50.c: Adjust.
+ 	* gcc.target/nvptx/march=sm_50.c: New.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* gcc.target/nvptx/mptx=4.0.c: New.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* rust/compile/macros/builtin/builtin_macro.exp: Revert previous change.
+ 	* rust/compile/macros/mbe/mbe_macro.exp: Likewise.
+ 	* rust/compile/macros/proc/proc_macro.exp: Likewise.
+ 	* rust/compile/torture/compile.exp: Likewise.
+ 	* rust/compile/xfail/xfail.exp: Likewise.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* rust/compile/compile.exp: Revert previous change.
+ 	* rust/compile/issue_4402_foo.rs: 'dg-skip-if' for '*-*-*'.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR cobol/119818
+ 	* cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob:
+ 	'dg-set-target-env-var TZ UTC0' (take 2).
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR tree-optimization/124037
+ 	* g++.dg/vect/vect-pr124037.cc: Unrestrict.
+ 	* gcc.dg/vect/vect-pr124037.c: Likewise.
+ 
+ 2026-04-17  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/124900
+ 	* gcc.target/aarch64/crc-1.c: New test.
+ 	* gcc.target/aarch64/crc-2.c: New test.
+ 	* gcc.target/aarch64/crc-3.c: New test.
+ 	* gcc.target/aarch64/crc-4.c: New test.
+ 
+ 2026-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/warn/Wkeyword-macro-1.C: Expect error for pre/post for C++26.
+ 	* g++.dg/warn/Wkeyword-macro-2.C: Expect warning for pre/post for
+ 	C++26.
+ 	* g++.dg/warn/Wkeyword-macro-4.C: Expect error for pre/post for C++26.
+ 	* g++.dg/warn/Wkeyword-macro-5.C: Expect warning for pre/post for
+ 	C++26.
+ 	* g++.dg/warn/Wkeyword-macro-7.C: Likewise.
+ 	* g++.dg/warn/Wkeyword-macro-8.C: Likewise.
+ 
+ 2026-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123783
+ 	* g++.dg/reflect/mangle3.C: Remove f5<parameters_of (^^g)[0]>()
+ 	case.
+ 	* g++.dg/reflect/dep14.C: Include <ranges>.
+ 	(func): Apply variable_of to each vector member.
+ 	(func2): Likewise.  Use ^^func2 instead of ^^func.
+ 	* g++.dg/reflect/splice12.C: New test.
+ 
+ 2026-04-17  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/124632
+ 	* g++.dg/cpp23/explicit-obj-lambda2.C: Do strict GC and -Wall.
+ 
+ 2026-04-16  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* gcc.target/arm/multilib.exp: Test CDE options on cortex-m85.
+ 
+ 2026-04-16  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124614
+ 	* g++.dg/reflect/member23.C: New test.
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124120
+ 	* g++.dg/cpp26/expansion-stmt40.C: New test.
+ 
+ 2026-04-16  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/123352
+ 	* gfortran.dg/defined_assignment_13.f90: Add previously failing
+ 	tests.
+ 
+ 2026-04-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* gcc.target/i386/pr90178.c: Scan for 2 `ret` instructions.
+ 
+ 2026-04-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/124877
+ 	* gcc.target/i386/pr124877-1.c: New testcase.
+ 	* gcc.target/i386/pr124877-2.c: Likewise.
+ 	* gcc.target/i386/pr124877-3.c: Likewise.
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124892
+ 	* gcc.target/i386/apx-pr124892.c: New test.
+ 
+ 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124891
+ 	* gcc.dg/torture/pr124891.c: New test.
+ 
+ 2026-04-16  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
+ 	(__STDC_LIMIT_MACROS): Define.
+ 
+ 2026-04-16  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/123346
+ 	* g++.dg/cpp2a/constexpr-union10.C: New test.
+ 
+ 2026-04-16  Iain Sandoe  <iains.gcc@gmail.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/124648
+ 	* g++.dg/contracts/cpp26/expr.prim.lambda.closure.p10.C: New test.
+ 
+ 2026-04-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/120338
+ 	* g++.dg/cpp0x/deleted19.C: New test.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* go.test/go-test.exp (errchk): Use -translation binary instead of
+ 	-encoding binary for TCL 9 compatibility.
+ 
+ 2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/warn36.adb: New test.
+ 
+ 2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/warn35.adb: New test.
+ 
+ 2026-04-15  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/124081
+ 	* gm2/iso/run/pass/setcons.mod: New test.
+ 	* gm2/iso/run/pass/setcons2.mod: New test.
+ 	* gm2/iso/run/pass/setcons3.mod: New test.
+ 	* gm2/iso/run/pass/setcons4.mod: New test.
+ 	* gm2/iso/run/pass/setcons5.mod: New test.
+ 
+ 2026-04-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123783
+ 	* g++.dg/reflect/dep14.C: New test.
+ 
+ 2026-04-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/122976
+ 	* gcc.dg/tree-ssa/pr122976.c: New test.
+ 
+ 2026-04-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124824
+ 	* g++.dg/reflect/mangle6.C: New test.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124755
+ 	* g++.dg/cpp26/constexpr-eh19.C: New test.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/123635
+ 	* gcc.dg/bitintext.h: Handle __riscv__ like __arm__.
+ 	* gcc.dg/torture/bitint-86.c: New test.
+ 	* gcc.dg/torture/bitint-87.c: New test.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/117133
+ 	PR c++/124768
+ 	PR c++/124773
+ 	* g++.dg/abi/mangle84.C: New test.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121643
+ 	PR c++/123975
+ 	* g++.dg/coroutines/pr105287.C: Add dg-excess-errors.
+ 	* g++.dg/coroutines/pr121643.C: New test.
+ 	* g++.dg/coroutines/pr123975.C: New test.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121961
+ 	* g++.dg/asan/coroutines1.C: New test.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/reflect/mangle2.C: Expect \[jmy] instead of just m for size_t
+ 	mangling.
+ 	* g++.dg/reflect/mangle3.C: Expect \[ilx] instead of just l for
+ 	ptrdiff_t mangling.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc.dg/bitint-31.c: Require hard_float effective target, add
+ 	-frounding-math to dg-options.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/cpp26/expansion-stmt39.C: New test.
+ 	* g++.dg/reflect/cwg3149.C: New test.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/reflect/mangle1.C: Adjust expected mangling of type
+ 	aliases.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124862
+ 	* g++.dg/ext/builtin-structured-binding-size5.C: New test.
+ 	* g++.dg/ext/builtin-structured-binding-size6.C: New test.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124850
+ 	* g++.dg/other/anon-union8.C: New test.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/reflect/reflect_constant_array9.C: New test.
+ 	* g++.dg/reflect/reflect_constant_array10.C: New test.
+ 	* g++.dg/reflect/reflect_constant_array11.C: New test.
+ 	* g++.dg/reflect/define_static_array6.C: New test.
+ 	* g++.dg/reflect/define_static_object2.C: Uncomment older tests and
+ 	fix them, add tests for unions.
+ 
+ 2026-04-15  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* gcc.dg/plugin/analyzer_known_fns_plugin.cc: Add missing
+ 	override to member function.
+ 
+ 2026-04-15  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* gcc.dg/plugin/diagnostic_plugin_test_paths.cc: Compare with
+ 	NULL in if statement.
+ 
+ 2026-04-14  jayant chauhan  <0001jayant@gmail.com>
+ 
+ 	* rust/compile/issue-3910.rs: New test.
+ 
+ 2026-04-14  AhmedSaid3617  <said.ahmed3617@gmail.com>
+ 
+ 	* rust/compile/glob-import-all.rs: New test.
+ 
+ 2026-04-14  Islam-Imad  <islamimad404@gmail.com>
+ 
+ 	* rust/compile/issue-4517.rs: New test.
+ 
+ 2026-04-14  Mohamed Ali  <mohmedali1462005@gmail.com>
+ 
+ 	* rust/compile/cttz.rs: New test.
+ 	* rust/compile/cttz_nonzero.rs: New test.
+ 	* rust/execute/torture/cttz.rs: New test.
+ 	* rust/execute/torture/cttz_nonzero.rs: New test.
+ 
+ 2026-04-14  Philipp Gesang  <phg@phi-gamma.net>
+ 
+ 	* rust/compile/func-qualifier-default.rs:
+ 	Adapt to change in compiler messages
+ 	* rust/compile/func-qualifier-order.rs: Renamed existing
+ 	test file for clarity (from)
+ 	* rust/compile/func-qualifier-order-1.rs: Renamed existing
+ 	test file (to)
+ 	* rust/compile/func-qualifier-order-2.rs: New test file
+ 	* rust/compile/func-qualifier-order-3.rs: New test file
+ 
+ 2026-04-14  Philipp Gesang  <phg@phi-gamma.net>
+ 
+ 	* rust/compile/func-qualifier-order.rs: New test file
+ 	* rust/compile/func-qualifier-default.rs: New test file
+ 
+ 2026-04-14  Yap Zhi Heng  <yapzhhg@gmail.com>
+ 
+ 	* rust/compile/issue-3550.rs: New file.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* rust/compile/doc_macro.rs: Add macro_export on macro.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* rust/compile/doc_macro.rs: Add concat builtin macro definition.
+ 	* rust/compile/early_feature_gate_in_macro.rs: Add stringify builtin
+ 	macro definition.
+ 	* rust/compile/issue-3661.rs: Likewise.
+ 	* rust/compile/parse_time_feature_gate.rs: Add concat and stringify
+ 	builtin macro definition.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* rust/compile/issue-4226.rs: Update text to match error message from
+ 	attribute checking pass that was not triggered before.
+ 
+ 2026-04-14  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>
+ 
+ 	* rust/compile/issue-3919-ice-func-parms.rs: New test.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* rust/execute/ident_pat_vs_path_1.rs: New test.
+ 	* rust/execute/ident_pat_vs_path_2.rs: New test.
+ 
+ 2026-04-14  Jayant Chauhan  <0001jayant@gmail.com>
+ 
+ 	* rust/compile/issue-3875.rs: New test.
+ 
+ 2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
+ 
+ 	* rust/compile/compiler_builtins_gate.rs: New test.
+ 
+ 2026-04-14  Mohamed Ali  <mohmedali1462005@gmail.com>
+ 
+ 	* rust/execute/torture/ctlz_i16.rs: New test.
+ 	* rust/execute/torture/ctlz_i32.rs: New test.
+ 	* rust/execute/torture/ctlz_i64.rs: New test.
+ 	* rust/execute/torture/ctlz_i8.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_i16.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_i32.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_i64.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_i8.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_u16.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_u32.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_u64.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero_u8.rs: New test.
+ 	* rust/execute/torture/ctlz_u16.rs: New test.
+ 	* rust/execute/torture/ctlz_u32.rs: New test.
+ 	* rust/execute/torture/ctlz_u64.rs: New test.
+ 	* rust/execute/torture/ctlz_u8.rs: New test.
+ 
+ 2026-04-14  Mohamed Ali  <mohmedali1462005@gmail.com>
+ 
+ 	* rust/compile/ctlz.rs: New test.
+ 	* rust/compile/ctlz_nonzero.rs: New test.
+ 	* rust/execute/torture/ctlz.rs: New test.
+ 	* rust/execute/torture/ctlz_nonzero.rs: New test.
+ 
+ 2026-04-14  Enes Cevik  <nsvke@proton.me>
+ 
+ 	* rust/execute/non_decimal_128_saturation.rs: New test.
+ 
+ 2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>
+ 
+ 	* rust/compile/match-struct-path.rs: Increase test coverage.
+ 
+ 2026-04-14  Yap Zhi Heng  <yapzhhg@gmail.com>
+ 
+ 	* rust/compile/issue-3555.rs: New test case.
+ 	* rust/compile/issue-3591.rs: New test case.
+ 	* rust/compile/issue-3597.rs: New test case.
+ 	* rust/compile/issue-3651.rs: New test case.
+ 	* rust/compile/issue-3670.rs: New test case.
+ 	* rust/compile/issue-3672.rs: New test case.
+ 
+ 2026-04-14  Harishankar  <harishankarpp7@gmail.com>
+ 
+ 	* rust/compile/issue-3931.rs: New test.
+ 
+ 2026-04-14  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124544
+ 	* g++.dg/reflect/alias1.C: New test.
+ 	* g++.dg/reflect/alias2.C: New test.
+ 
+ 2026-04-14  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/124809
+ 	* gcc.dg/pr124809.c: New.
+ 
+ 2026-04-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/124777
+ 	* gcc.dg/ipa/pr124777.c: New test.
+ 
+ 2026-04-14  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/105408
+ 	* gm2/iso/run/pass/testgeneric.mod: Corrected printf arguments.
+ 	* gm2/iso/run/pass/printsize.mod: New test.
+ 	* gm2/iso/run/pass/testgeneric2.mod: New test.
+ 	* gm2/iso/run/pass/testgeneric3.mod: New test.
+ 	* gm2/iso/run/pass/testgeneric4.mod: New test.
+ 	* gm2/iso/run/pass/testgeneric5.mod: New test.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124875
+ 	* g++.dg/torture/pr124875.C: New testcase.
+ 
+ 2026-04-14  Soumya AR  <soumyaa@nvidia.com>
+ 	    Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* gcc.target/aarch64/narrow-gp-writes-1.c: New test.
+ 	* gcc.target/aarch64/narrow-gp-writes-2.c: New test.
+ 	* gcc.target/aarch64/narrow-gp-writes-3.c: New test.
+ 	* gcc.target/aarch64/narrow-gp-writes-4.c: New test.
+ 	* gcc.target/aarch64/narrow-gp-writes-5.c: New test.
+ 	* gcc.target/aarch64/narrow-gp-writes-6.c: New test.
+ 	* gcc.target/aarch64/narrow-gp-writes-7.c: New test.
+ 
+ 2026-04-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124826
+ 	* gcc.dg/bitint-128.c: New test.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124868
+ 	* gcc.dg/torture/pr124868.c: New testcase.
+ 
+ 2026-04-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/124876
+ 	* gcc.target/i386/zero-scratch-regs-23.c: Scan vpxord on ZMM16-31.
+ 	* gcc.target/i386/zero-scratch-regs-33.c: New test.
+ 
+ 2026-04-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123237
+ 	PR c++/124771
+ 	PR c++/124842
+ 	* g++.dg/reflect/mangle2.C: New test.
+ 	* g++.dg/reflect/mangle3.C: New test.
+ 	* g++.dg/reflect/mangle4.C: New test.
+ 	* g++.dg/reflect/mangle5.C: New test.
+ 
+ 2026-04-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/101760
+ 	PR fortran/102314
+ 	* gfortran.dg/gomp/pr101760.f90: New test.
+ 	* gfortran.dg/gomp/pr102314.f90: New test.
+ 
+ 2026-04-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124835
+ 	* g++.dg/reflect/decltype2.C: New test.
+ 
+ 2026-04-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/123238
+ 	* gcc.target/aarch64/pr123238.c:
+ 
+ 2026-04-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/103901
+ 	PR c++/123566
+ 	* g++.dg/cpp2a/lambda-targ25.C: New test.
+ 
+ 2026-04-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/122632
+ 	* g++.dg/cpp23/lambda-scope11.C: New test.
+ 
+ 2026-04-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124246
+ 	* g++.dg/reflect/type_trait13.C: Uncomment commented out is_swappable_type and
+ 	is_nothrow_swappable_type assertions with std::priority_queue.
+ 
+ 2026-04-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/124700
+ 	* g++.dg/gomp/pr124700.C: New test.
+ 
+ 2026-04-13  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/124710
+ 	* gcc.target/i386/pr124710-1.c: New test.
+ 	* gcc.target/i386/pr124710-2.c: Ditto.
+ 
+ 2026-04-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/122884
+ 	* g++.dg/cpp23/lambda-scope10.C: New test.
+ 	* g++.dg/cpp23/lambda-scope10a.C: New test.
+ 
  2026-04-11  Christopher Albert  <albert@tugraz.at>
  
  	PR fortran/93554
diff -Nrcpad gcc-16-20260412/gcc/testsuite/cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob gcc-16-20260419/gcc/testsuite/cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob
*** gcc-16-20260412/gcc/testsuite/cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob	Sun Apr 12 22:32:09 2026
--- gcc-16-20260419/gcc/testsuite/cobol.dg/group2/FUNCTION_DATE___TIME_OMNIBUS.cob	Sun Apr 19 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
         *> { dg-do run }
+        *> { dg-set-target-env-var TZ UTC0 }
  
          identification division.
          program-id. testy.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/abi/mangle84.C gcc-16-20260419/gcc/testsuite/g++.dg/abi/mangle84.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/abi/mangle84.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/abi/mangle84.C	Sun Apr 19 22:32:10 2026
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/124768
+ // { dg-final { scan-assembler "two:" } }
+ // { dg-final { scan-assembler-not "_ZN12_GLOBAL__N_13twoE:" } }
+ namespace { extern "C" { int two = 2; } }
+ int main() { return two; }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/asan/coroutines1.C gcc-16-20260419/gcc/testsuite/g++.dg/asan/coroutines1.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/asan/coroutines1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/asan/coroutines1.C	Sun Apr 19 22:32:10 2026
***************
*** 0 ****
--- 1,71 ----
+ // PR c++/121961
+ // { dg-additional-options "-fsanitize=address" }
+ // { dg-do run { target c++20 } }
+ 
+ #include <coroutine>
+ 
+ struct Result
+ {
+   int Value;
+ };
+ 
+ template<typename... Args>
+ struct std::coroutine_traits<Result, Args...>
+ {
+   struct promise_type;
+ 
+   struct Wrapper
+   {
+     std::coroutine_handle<promise_type> Handle_;
+     bool Own_ = false;
+ 
+     ~Wrapper ()
+     {
+       if (Own_)
+ 	Handle_.destroy ();
+     }
+ 
+     operator Result ()
+     {
+       Own_ = true;
+       return { Handle_.promise ().Value_ };
+     }
+   };
+ 
+   struct promise_type
+   {
+     int Value_ = 0;
+ 
+     std::suspend_never initial_suspend () noexcept { return {}; }
+     std::suspend_always final_suspend () noexcept { return {}; }
+     void unhandled_exception () {}
+ 
+     void return_value (int v) { Value_ = v; }
+ 
+     Wrapper get_return_object ()
+     {
+       return { std::coroutine_handle<promise_type>::from_promise (*this) };
+     }
+   };
+ };
+ 
+ struct Awaitable
+ {
+   int V_;
+   bool await_ready () const noexcept { return true; }
+   void await_suspend (std::coroutine_handle<>) const noexcept {}
+   int await_resume () const noexcept { return V_; }
+ };
+ 
+ Result simple ()
+ {
+   auto a = co_await Awaitable { 3 };
+   auto b = co_await Awaitable { 5 };
+   co_return a * b;
+ }
+ 
+ int main ()
+ {
+   auto r = simple ();
+   return r.Value == 15 ? 0 : 1;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.lambda.closure.p10.C gcc-16-20260419/gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.lambda.closure.p10.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.lambda.closure.p10.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.lambda.closure.p10.C	Sun Apr 19 22:32:10 2026
***************
*** 0 ****
--- 1,53 ----
+ // N5008 :
+ // [expr.prim.lambda.closure]/p10
+ // If all potential references to a local entity implicitly captured by a
+ // lambda-expression L occur within the function contract assertions of the
+ // call operator or operator template of L or within assertion-statements
+ // within the body of L, the program is ill-formed.
+ // [Note 4: Adding a contract assertion to an existing C++ program cannot
+ //  cause additional captures. — end note]
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-fcontracts -fsyntax-only" }
+ 
+ auto gl0 = [] (int x) 
+   pre (x > 10) { return x; }; // OK
+ 
+ static int i = 0;
+ 
+ void
+ foo ()
+ {
+   auto f1 = [=]
+     pre (i > 0) {};  // OK, no local entities are captured.
+ 
+   int i = 1;
+ 
+   auto f2 = [=]
+     pre (i > 0) {};  // { dg-error {'i' is not implicitly captured by a contract assertion} }
+ 
+   auto f3 = [i]
+     pre (i > 0) {};  // OK, i is captured explicitly.
+ 
+   auto f4 = [=] {
+     contract_assert (i > 0); // { dg-error {'i' is not implicitly captured by a contract assertion} }
+   };
+ 
+   auto f5 = [=] {
+     contract_assert (i > 0); // OK, i is referenced elsewhere.
+     return i;
+   };
+ 
+   auto f6 = [=] pre (                // #1
+     []{
+       bool x = true;
+       return [=]{ return x; }();    // OK, #1 captures nothing.
+     }()) {};
+ 
+ // TODO: lambda captures in function contract specifiers are not yet
+ // fully functional.
+ #if 0
+   bool y = true;
+   auto f7 = [=]
+     pre([=]{ return y; }()); // error: outer capture of y is invalid.
+ #endif
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr105287.C gcc-16-20260419/gcc/testsuite/g++.dg/coroutines/pr105287.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr105287.C	Sun Apr 12 22:32:09 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/coroutines/pr105287.C	Sun Apr 19 22:32:10 2026
***************
*** 1,4 ****
--- 1,6 ----
  // { dg-additional-options "-fanalyzer" }
+ // { dg-excess-errors "PR105382" }
+ // But we should't ICE.
  
  namespace std {
  template <typename _Result> struct coroutine_traits : _Result {};
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr121643.C gcc-16-20260419/gcc/testsuite/g++.dg/coroutines/pr121643.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr121643.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/coroutines/pr121643.C	Sun Apr 19 22:32:10 2026
***************
*** 0 ****
--- 1,29 ----
+ // PR c++/121643
+ 
+ #include <coroutine>
+ 
+ struct Detached {
+   struct promise_type {
+     Detached get_return_object() const noexcept { return {}; }
+     std::suspend_never initial_suspend() const noexcept { return {}; }
+     void return_void() const noexcept {}
+     void unhandled_exception() const noexcept { }
+     std::suspend_never final_suspend() const noexcept { return {}; }
+   };
+ };
+ 
+ struct Awaiter {
+   bool await_ready() noexcept { return true; }
+   void
+   await_suspend(std::coroutine_handle<> h,
+                 int sloc = 1)
+     noexcept
+   {}
+   void await_resume() noexcept {}
+ };
+ 
+ Detached
+ coroutine()
+ {
+   co_await Awaiter{};
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr123975.C gcc-16-20260419/gcc/testsuite/g++.dg/coroutines/pr123975.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr123975.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/coroutines/pr123975.C	Sun Apr 19 22:32:10 2026
***************
*** 0 ****
--- 1,52 ----
+ // PR c++/123975
+ // { dg-do run { target c++20 } }
+ #include <coroutine>
+ 
+ #if DEBUG
+ #define PRINTF(...) __builtin_printf (__VA_ARGS__)
+ #else
+ #define PRINTF(...)
+ #endif
+ 
+ struct task {
+   bool await_ready() const { return false; }
+   void await_suspend(auto &&h);
+   void await_resume() {}
+ 
+   struct promise_type {
+     task get_return_object() { return task{}; }
+     void return_void() {}
+     void unhandled_exception() {}
+     auto initial_suspend() noexcept { return std::suspend_never{}; }
+     auto final_suspend() noexcept { return std::suspend_never{}; }
+ 
+     promise_type();
+     promise_type(const promise_type& p)
+     { PRINTF ("%p: promise copied from %p\n", this, &p); }
+     ~promise_type() { PRINTF ("%p: promise destroyed\n", this); }
+   };
+ };
+ 
+ const task::promise_type *first;
+ task::promise_type::promise_type()
+ {
+   if (!first) first = this;
+   PRINTF ("%p: promise constructed\n", this);
+ }
+ void task::await_suspend (auto &&h)
+ {
+   auto &p = h.promise();
+   PRINTF ("suspend %p\n", &h.promise());
+   if (&p != first) __builtin_abort ();
+ }
+ 
+ task f() { co_return; }
+ 
+ task g() {
+   co_await f();
+ }
+ 
+ int main()
+ {
+   g();
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp0x/deleted19.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp0x/deleted19.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp0x/deleted19.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp0x/deleted19.C	Sun Apr 19 22:32:10 2026
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/120338
+ // { dg-do compile { target c++11 } }
+ 
+ int main() = delete;  // { dg-error "cannot be deleted" }
+ int main() {}	      // { dg-error "redefinition" }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C	Sun Apr 19 22:32:11 2026
***************
*** 1,6 ****
--- 1,9 ----
  // P0847R7
  // { dg-do run { target c++23 } }
  
+ // PR c++/124632
+ // { dg-additional-options "-Wall --param ggc-min-expand=0 --param ggc-min-heapsize=0" }
+ 
  // recursive lambdas
  
  inline constexpr int correct_result = 5 + 4 + 3 + 2 + 1; 
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/lambda-scope10.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/lambda-scope10.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/lambda-scope10.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/lambda-scope10.C	Sun Apr 19 22:32:11 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/122884
+ // { dg-do compile { target c++23 } }
+ 
+ struct demux_t {
+     template <class Fn, class... Slots>
+     static constexpr auto operator()(Fn&& fn, Slots&&... slots) {
+         return [fn{fn}, ... slots{slots}]<class Self, class... Args>(
+                    this Self&&,
+                    Args&&... args)
+                    noexcept(noexcept(fn(slots(args...)...))) // comment this
+                    -> decltype(auto)
+                    requires requires { fn(slots(args...)...); } // and this, no longer crash
+         { return fn(slots(args...)...); };
+     }
+ } static constexpr demux{};
+ 
+ static_assert(demux([](auto x, auto y) { return x + y; },
+                     [](auto...) { return 1; },
+                     [](auto...) { return 2; })(1, 2) == 3);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/lambda-scope10a.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/lambda-scope10a.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/lambda-scope10a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/lambda-scope10a.C	Sun Apr 19 22:32:11 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/122884
+ // { dg-do compile { target c++23 } }
+ 
+ struct demux_t {
+     template <class Fn, class... Slots>
+     static constexpr auto operator()(Fn&& fn, Slots&&... slots) {
+         return [fn{fn}, ... slots{slots}]<class Self, class... Args>(
+                    this Self&&,
+                    Args&&... args)
+                    noexcept(noexcept(fn(slots(args...)...))) // comment this
+                    -> decltype(auto)
+ 	  requires (!noexcept (fn(slots(args...)...))) // and this, no longer crash
+         { return fn(slots(args...)...); };
+     }
+ } static constexpr demux{};
+ 
+ static_assert(demux([](auto x, auto y) { return x + y; },
+                     [](auto...) { return 1; },
+                     [](auto...) { return 2; })(1, 2) == 3);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/lambda-scope11.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/lambda-scope11.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp23/lambda-scope11.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp23/lambda-scope11.C	Sun Apr 19 22:32:11 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/122632
+ // { dg-do compile { target c++20 } }
+ 
+ void f(auto... x) {
+   [...y = x]() noexcept((... && noexcept(y))) {};
+ }
+ 
+ int main() {
+ 	f();
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/constexpr-eh19.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp26/constexpr-eh19.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/constexpr-eh19.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp26/constexpr-eh19.C	Sun Apr 19 22:32:11 2026
***************
*** 0 ****
--- 1,33 ----
+ // PR c++/124755
+ // { dg-do compile { target c++26 } }
+ 
+ constexpr int
+ foo (int a)
+ {
+   return a ? throw 1 : 0;
+ }
+ 
+ consteval int
+ bar ()
+ {
+   int n = 0;
+   int a[] = { 0, 1 };
+   for (int m : a)
+     n += foo (m);
+   return n;
+ }
+ 
+ consteval int
+ baz ()
+ {
+   try
+     {
+       return bar ();
+     }
+   catch (...)
+     {
+       return -1;
+     }
+ }
+ 
+ static_assert (baz () == -1);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt39.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp26/expansion-stmt39.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt39.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp26/expansion-stmt39.C	Sun Apr 19 22:32:11 2026
***************
*** 0 ****
--- 1,16 ----
+ // CWG3149 - Rvalues in destructuring expansion statements
+ // { dg-do compile { target c++26 } }
+ 
+ #include <tuple>
+ #include <type_traits>
+ 
+ std::tuple <int, long long &, int &&> foo ();
+ 
+ void
+ bar ()
+ {
+   template for (auto &&elem : foo ())
+     static_assert (std::is_same_v <std::remove_reference_t <decltype (elem)>, long long>
+ 		   ? std::is_same_v <decltype (elem), long long &>
+ 		   : std::is_same_v <decltype (elem), int &&>);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt40.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp26/expansion-stmt40.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt40.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp26/expansion-stmt40.C	Sun Apr 19 22:32:11 2026
***************
*** 0 ****
--- 1,40 ----
+ // PR c++/124120
+ // { dg-do compile { target c++14 } }
+ // { dg-require-weak "" }
+ // { 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 () {} };
+   constexpr A begin (const B &) { return A (0); }
+   constexpr A end (const B &) { return A (6); }
+ }
+ 
+ int
+ bar ()
+ {
+   int r = 0;
+   template for (constexpr auto i : N::B {})			// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     r += i;
+   return r;
+ }
+ 
+ extern void plugh ();
+ 
+ [[gnu::weakref ("plugh")]] static void xyzzy ();
+ 
+ void
+ plugh ()
+ {
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/constexpr-union10.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp2a/constexpr-union10.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/constexpr-union10.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp2a/constexpr-union10.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/123346
+ // { dg-do compile { target c++20 } }
+ struct Unit {};
+ union Union { Unit unit; };
+ constexpr Union make(Union&& other) {
+     return Union {.unit = other.unit };
+ }
+ constexpr Union u = make(Union { .unit = Unit{} });
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/lambda-targ25.C gcc-16-20260419/gcc/testsuite/g++.dg/cpp2a/lambda-targ25.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/lambda-targ25.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/cpp2a/lambda-targ25.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/123566
+ // { dg-do compile { target c++20 } }
+ 
+ template <class T, auto =
+               [] {
+                 struct { // { dg-bogus "local class" "PR103901" { xfail *-*-* } }
+                 } s;	 // We would ICE trying to call the constructor.
+               }>
+ bool v;
+ auto x = v<int>;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size5.C gcc-16-20260419/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size5.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size5.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size5.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/124862
+ // { dg-do compile { target c++20 } }
+ 
+ struct S
+ {
+   int a = 0, b = 0, c = 0;
+ };
+ 
+ struct T : private S
+ {};
+ 
+ static_assert (__builtin_structured_binding_size (S) == 3);
+ auto a = __builtin_structured_binding_size (T);		// { dg-error "'S' is an inaccessible base of 'T'" }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size6.C gcc-16-20260419/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size6.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/ext/builtin-structured-binding-size6.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/124862
+ // { dg-do compile { target c++20 } }
+ 
+ struct S
+ {
+   int a = 0, b = 0, c = 0;
+ };
+ 
+ struct T : private S
+ {};
+ 
+ template <typename T>
+ concept is_destructurable = requires { { __builtin_structured_binding_size (T) }; };
+ 
+ static_assert (is_destructurable <S>);
+ static_assert (!is_destructurable <T>);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/gomp/pr124700.C gcc-16-20260419/gcc/testsuite/g++.dg/gomp/pr124700.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/gomp/pr124700.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/gomp/pr124700.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,60 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3" } */
+ 
+ int a (int);
+ struct b
+ {
+   b ();
+   b (b &);
+   ~b ();
+ };
+ template <typename c> b d (c);
+ int ab;
+ void ae (int);
+ struct e
+ {
+   b g;
+   template <typename c> e operator<< (c h)
+   {
+     d (h);
+     return *this;
+   }
+   b f;
+ };
+ template <int = 0> struct i
+ {
+   long ah;
+   int j ()
+   {
+     e () << "" << aj << 1 << "" << ah << "" << ak << "";
+     return ah;
+   }
+   char aj;
+   int ak;
+ };
+ i<> k;
+ template <typename>
+ int
+ ao (bool h)
+ {
+ #pragma omp parallel
+   {
+     int as;
+     for (; as;)
+       {
+ 	int au = k.j ();
+ 	ae (au);
+ 	if (h)
+ 	  b ();
+       }
+   }
+   return a (ab);
+ }
+ int l = ao<short> (true);
+ void
+ az ()
+ {
+   ao<short> (true);
+   __builtin_unreachable ();
+ }
+ template int ao<short> (bool);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/other/anon-union8.C gcc-16-20260419/gcc/testsuite/g++.dg/other/anon-union8.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/other/anon-union8.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/other/anon-union8.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/124850
+ // { dg-do compile }
+ 
+ static union { int i; };
+ int &r = i;
+ 
+ int
+ foo ()
+ {
+   return r;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/alias1.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/alias1.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/alias1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/alias1.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,26 ----
+ // PR c++/124544
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ using alias = int;
+ template<class> using alias_t = int;
+ 
+ template<auto> struct A { };
+ static_assert( ! __is_same(A<^^int>, A<^^alias>) );
+ static_assert( ! __is_same(A<^^int>, A<^^alias_t<int>>) );
+ static_assert( ! __is_same(A<^^alias>, A<^^alias_t<int>>) );
+ static_assert( ! __is_same(A<^^alias_t<char>>, A<^^alias_t<int>>) );
+ static_assert(   __is_same(A<^^alias_t<alias>>, A<^^alias_t<int>>) );
+ 
+ template<class> struct B { };
+ static_assert(   __is_same(A<^^B<alias>>, A<^^B<int>>) );
+ 
+ template<auto> int V;
+ static_assert( &V<^^int> != &V<^^alias_t<int>> );
+ static_assert( &V<^^int> != &V<^^alias> );
+ static_assert( &V<^^alias_t<int>> != &V<^^alias_t<char>> );
+ 
+ template<auto> void f();
+ static_assert( &f<^^int> != &f<^^alias_t<int>> );
+ static_assert( &f<^^int> != &f<^^alias> );
+ static_assert( &f<^^alias_t<int>> != &f<^^alias_t<char>> );
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/alias2.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/alias2.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/alias2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/alias2.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/124544
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ template<auto V, class T>
+ struct A;
+ 
+ template<auto V>
+ struct A<V, char> {
+   static void f();
+ };
+ 
+ template<class T> using alias_t = T;
+ 
+ int main() {
+   A<^^int, char>::f();
+   A<^^alias_t<int>, char>::f();
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/cwg3149.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/cwg3149.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/cwg3149.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/cwg3149.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,17 ----
+ // CWG3149 - Rvalues in destructuring expansion statements
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ #include <tuple>
+ 
+ std::tuple <int, long long &, int &&> foo ();
+ 
+ void
+ bar ()
+ {
+   template for (auto &&elem : foo ())
+     static_assert (remove_reference (type_of (^^elem)) == ^^long long
+ 		   ? type_of (^^elem) == ^^long long &
+ 		   : type_of (^^elem) == ^^int &&);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/decltype2.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/decltype2.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/decltype2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/decltype2.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,25 ----
+ // PR c++/124835
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ template <typename T, typename U>
+ constexpr bool is_same_v = false;
+ 
+ template <typename T>
+ constexpr bool is_same_v<T, T> = true;
+ 
+ template<typename T>
+ constexpr T foo (T t) { return t; }
+ 
+ template<typename T>
+ struct S { };
+ 
+ static_assert([:^^foo<int>:](42) == 42);
+ static_assert(is_same_v<decltype([:^^foo<int>:]), int(int)>);
+ static_assert(is_same_v<decltype([:^^foo<int>:](42)), int>);
+ static_assert(is_same_v<decltype(template [:^^foo:](0)), int>);
+ static_assert(is_same_v<decltype(template [:^^foo:]<int>(0)), int>);
+ static_assert(is_same_v<decltype(([:^^foo<int>:])), int(&)(int)>);
+ static_assert(is_same_v<decltype(([:^^foo<int>:](42))), int>);
+ static_assert(is_same_v<decltype((template [:^^foo:](0))), int>);
+ static_assert(is_same_v<decltype((template [:^^foo:]<int>(0))), int>);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/define_static_array6.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/define_static_array6.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/define_static_array6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/define_static_array6.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,27 ----
+ // LWG4483 - Multidimensional arrays are not supported by
+ // meta::reflect_constant_array and related functions.
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ consteval auto
+ foo ()
+ {
+   int a[3][3][3];
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	a[i][j][k] = i + j + k;
+   return std::define_static_array (a);
+ }
+ 
+ static_assert (foo ().size () == 3);
+ constexpr auto *m = foo ().data ();
+ consteval {
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	if (m[i][j][k] != i + j + k)
+ 	  throw 1;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/define_static_object2.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/define_static_object2.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/define_static_object2.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/define_static_object2.C	Sun Apr 19 22:32:12 2026
***************
*** 1,3 ****
--- 1,5 ----
+ // LWG4483 - Multidimensional arrays are not supported by
+ // meta::reflect_constant_array and related functions.
  // { dg-do compile { target c++26 } }
  // { dg-additional-options "-freflection" }
  // Test std::define_static_object.
***************
*** 5,18 ****
  #include <meta>
  
  constexpr int arr[]{1, 2, 3};
! // LWG4483 use extract(reflect_constant_array())
! // constexpr const int(*ptr)[3] = std::define_static_object(arr);
! // static_assert( *ptr == std::define_static_array(arr).data() );
! // static_assert( ptr = &std::meta::constant_of(arr) );
  
  constexpr int marr[3][3]{1, 2, 3};
! // LWG4483 array are not structural so this fail
! // constexpr const int(*mptr)[3][3] = std::define_static_object(marr);
! // static_assert( *mptr == std::define_static_array(marr).data() );
! // static_assert( mptr = &std::meta::constant_of(marr) );
  
--- 7,25 ----
  #include <meta>
  
  constexpr int arr[]{1, 2, 3};
! constexpr const int (*ptr)[3] = std::define_static_object (arr);
! static_assert (*ptr == std::define_static_array (arr).data ());
! static_assert (ptr == &[: std::meta::constant_of (^^arr) :]);
  
  constexpr int marr[3][3]{1, 2, 3};
! constexpr const int (*mptr)[3][3] = std::define_static_object (marr);
! static_assert (*mptr == std::define_static_array (marr).data ());
! static_assert (mptr == &[: std::meta::constant_of (^^marr) :]);
  
+ union U { int a; long long b; };
+ constexpr U u = { .a = 42 };
+ constexpr const U *up = std::define_static_object (u);
+ static_assert (up->a == 42);
+ constexpr U v = { .b = 43LL };
+ constexpr const U *vp = std::define_static_object (v);
+ static_assert (vp->b == 43LL);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/dep14.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/dep14.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/dep14.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/dep14.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,58 ----
+ // PR c++/123783
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ #include <ranges>
+ 
+ namespace __impl {
+   template<auto... vals>
+   struct replicator_type {
+     template<typename F>
+       constexpr void operator>>(F body) const {
+         (body.template operator()<vals>(), ...);
+       }
+   };
+ 
+   template<auto... vals>
+   replicator_type<vals...> replicator = {};
+ }
+ 
+ template<typename R>
+ consteval auto expand(R range) {
+   std::vector<std::meta::info> args;
+   for (auto r : range) {
+     args.push_back(reflect_constant(r));
+   }
+   return substitute(^^__impl::replicator, args);
+ }
+ 
+ int func(int counter, float factor) {
+     std::array<void *, parameters_of(^^func).size()> args;
+ 
+     std::size_t i = 0;
+     [:expand(parameters_of(^^func) | std::views::transform(std::meta::variable_of)):] >> [&i, &counter, &factor, &args]<auto e>
+     {
+         args[i++] = &[:e:]; // { dg-error "use of local variable" }
+     };
+     return 0;
+ }
+ 
+ int func2(int counter, float factor) {
+     std::array<void *, parameters_of(^^func2).size()> args;
+ 
+     std::size_t i = 0;
+     [:expand(parameters_of(^^func2) | std::views::transform(std::meta::variable_of)):] >> [&]<auto e>
+     {
+         args[i++] = &[:e:]; // { dg-error "use of local variable|trying to capture \[^\n\r]* in instantiation of generic lambda" }
+     };
+     return 0;
+ }
+ 
+ int main()
+ {
+     func(11, 22);
+     func(33, 44);
+     func2(11, 22);
+     func2(33, 44);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle1.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle1.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle1.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle1.C	Sun Apr 19 22:32:12 2026
*************** baz (int x)
*** 212,221 ****
  // { dg-final { scan-assembler "_Z3barILi181ELDmen3NS24Enum1AEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi182ELDmen3NS2Uej1C1CEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi190ELDman_EEvv" } }
! // { dg-final { scan-assembler "_Z3barILi200ELDmta5AliasEEvv" } }
! // { dg-final { scan-assembler "_Z3barILi201ELDmta3NS25AliasEEvv" } }
! // { dg-final { scan-assembler "_Z3barILi202ELDmta6TAliasILi42EEEEvv" } }
! // { dg-final { scan-assembler "_Z3barILi203ELDmta3NS26TAliasILj0EEEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi210ELDmty1SEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi211ELDmtyN3NS21SEEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi212ELDmtyKiEEvv" } }
--- 212,221 ----
  // { dg-final { scan-assembler "_Z3barILi181ELDmen3NS24Enum1AEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi182ELDmen3NS2Uej1C1CEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi190ELDman_EEvv" } }
! // { dg-final { scan-assembler "_Z3barILi200ELDmta5Alias_iEEvv" } }
! // { dg-final { scan-assembler "_Z3barILi201ELDmta3NS25Alias_DmEEvv" } }
! // { dg-final { scan-assembler "_Z3barILi202ELDmta6TAliasILi42EE_4TClsILi42EEEEvv" } }
! // { dg-final { scan-assembler "_Z3barILi203ELDmta3NS26TAliasILj0EE_NS0_4TClsILj0EEEEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi210ELDmty1SEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi211ELDmtyN3NS21SEEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi212ELDmtyKiEEvv" } }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle2.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle2.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle2.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,48 ----
+ // PR c++/123237
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ template<typename T>
+ using A0 = [:^^T:];
+ 
+ template<typename T>
+ using A1 = [:parent_of (^^T):]::B;
+ 
+ namespace N {
+   using B = int;
+   struct S {};
+ }
+ namespace D {
+   using B = long;
+   struct S {};
+ }
+ 
+ template <typename T>
+ using A2 = decltype (T ().[:std::meta::nonstatic_data_members_of (^^T, std::meta::access_context::unchecked ())[0]:]);
+ 
+ struct B
+ {
+   long a;
+   int b;
+ };
+ 
+ struct C
+ {
+   int c;
+   long d;
+ };
+ 
+ 
+ void
+ g ()
+ {
+   []<typename T = int> requires(requires { A0<T> {}; }) {}();
+   []<typename T = N::S> requires (requires { A1<T> {}; }) {} ();
+   []<typename T = C> requires (requires { A2<T> {}; }) {} ();
+ }
+ 
+ // { dg-final { scan-assembler "_ZZ1gvENKUlTyQrqXtlDSLDmtyT_EEEEvE_clIiEEDav" } }
+ // { dg-final { scan-assembler "_ZZ1gvENKUlTyQrqXtlNDSclL_ZNSt4meta9parent_ofEDmELDmtyT_EEE1BEEEvE0_clIN1N1SEEEDav" } }
+ // { dg-final { scan-assembler "_ZZ1gvENKUlTyQrqXtlDtdtcvT__EDScldtclL_ZNSt4meta25nonstatic_data_members_ofEDmNS0_14access_contextEELDmtyS_EclL_ZNS1_9uncheckedEvEEEL_ZNSt6vectorIDmSaIDmEEixE\[jmy]ELi0EEEEEEvE1_clI1CEEDav" } }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle3.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle3.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle3.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,239 ----
+ // PR c++/123237
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ // Test mangling dependent splices.
+ 
+ #include <meta>
+ using namespace std::meta;
+ 
+ int i;
+ int arr[] = {1, 2, 3};
+ auto [a1, a2, a3] = arr;
+ enum Enum { A };
+ using Alias = int;
+ 
+ template<auto>
+ struct TCls { };
+ 
+ template <auto> int TVar;
+ 
+ template<typename T>
+ struct B {
+   T t;
+   constexpr T fn () { return 42; }
+   template<typename>
+   struct C { };
+   template<typename U>
+   using U = C<U>;
+ };
+ 
+ struct Y {
+   int i;
+   using type = int;
+ };
+ 
+ struct S : Y { };
+ 
+ namespace N {
+   struct NY {
+     int i;
+   };
+ }
+ 
+ namespace NSAlias = N;
+ template <auto> concept Concept = requires { true; };
+ constexpr auto ctx = std::meta::access_context::current ();
+ 
+ template<typename T>
+ using US = [:^^T:];
+ 
+ template<info R>
+ constexpr auto f1 (typename [:R:] x) { return x; }
+ 
+ template<info R>
+ constexpr auto f2 (typename [:R:]::NY x) { return x; }
+ 
+ template<info R>
+ constexpr auto f3 () -> TCls<sizeof(typename [:R:])> { return {}; }
+ 
+ template<info R>
+ constexpr auto f4 () -> TCls<sizeof([:R:])> { return {}; }
+ 
+ template<info R>
+ constexpr auto f5 () -> decltype([:R:]) { return {}; }
+ 
+ template<typename T>
+ constexpr auto f6 (US<T> y) { return y; }
+ 
+ template<info R>
+ constexpr auto f7 (typename [:R:]<0> x) { return x; }
+ 
+ template<typename T>
+ constexpr auto f8 (typename [:^^T:] x) { return x; }
+ 
+ template<info R>
+ constexpr typename [:R:] f9 (int i) { return i; }
+ 
+ template<typename T>
+ constexpr T foo (T t) { return t; }
+ 
+ template<info R>
+ constexpr auto f10 () -> decltype([:R:](42)) { return {}; }
+ 
+ template<info R>
+ constexpr auto f11 (TCls<[:R:](42)> a) { return a; }
+ 
+ template<typename T>
+ consteval info id () { return ^^T; }
+ 
+ template<typename T>
+ constexpr typename [:id<T>():] f12 () { return 42; }
+ 
+ template<info R>
+ constexpr auto f13 (typename [:R:]::type x) { return x; }
+ 
+ template<info R>
+ constexpr auto f14 () -> [:R:] { return {}; }
+ 
+ template<typename T, info R>
+ constexpr auto f15 () -> decltype(T{}.[:R:]) { return {}; }
+ 
+ template<typename T, info R>
+ constexpr auto f16 () -> decltype(T{}.[:R:]()) { return {}; }
+ 
+ template<info O, info M>
+ constexpr auto f17 () -> decltype(typename [:O:]{}.[:M:]) { return {}; }
+ 
+ template<info M>
+ constexpr auto f18 () -> decltype(Y{}.[:M:]) { return {}; }
+ 
+ template<template<typename> class T>
+ constexpr auto f19 () -> [:^^T:]<int> { return {}; }
+ 
+ template<typename T>
+ constexpr auto f20 () -> [:^^typename T::type:] { return {}; }
+ 
+ template<typename T>
+ constexpr auto f21 () -> decltype(&[:^^T::i:]) { return {}; }
+ 
+ template<typename T>
+ constexpr auto f22 () -> decltype(&[:^^T::fn:]) { return {}; }
+ 
+ template<typename T>
+ constexpr auto f23 () -> [:^^typename T::C<int>:] { return {}; }
+ 
+ template<typename T>
+ constexpr auto f24 () -> [:^^typename T::U<int>:] { return {}; }
+ 
+ template<info R>
+ constexpr auto f25 () -> decltype([:R:])* { return {}; }
+ 
+ template<typename T>
+ consteval auto f26 (typename [:^^T:] x) { return x; }
+ 
+ template<info R>
+ constexpr auto f27 (typename [:R:]::Alias x) { return x; }
+ 
+ void
+ g (int p)
+ {
+   f1<^^Y>(Y{ 42 });
+ // { dg-final { scan-assembler "_Z2f1ILDmty1YEEDaDST_E" } }
+   f1<^^Enum>(A);
+ // { dg-final { scan-assembler "_Z2f1ILDmty4EnumEEDaDST_E" } }
+   f2<^^N>(N::NY{ 42 });
+ // { dg-final { scan-assembler "_Z2f2ILDmns1NEEDaNDST_E2NYE" } }
+   f2<^^NSAlias>(NSAlias::NY{ 42 });
+ // { dg-final { scan-assembler "_Z2f2ILDmna7NSAliasEEDaNDST_E2NYE" } }
+   f3<^^int>();
+ // { dg-final { scan-assembler "_Z2f3ILDmtyiEE4TClsIXstDST_EEEv" } }
+   f3<^^Alias>();
+ // { dg-final { scan-assembler "_Z2f3ILDmtyiEE4TClsIXstDST_EEEv" } }
+   f4<^^i>();
+ // { dg-final { scan-assembler "_Z2f4ILDmvr1iEE4TClsIXszDST_EEEv" } }
+   f4<^^arr>();
+ // { dg-final { scan-assembler "_Z2f4ILDmvr3arrEE4TClsIXszDST_EEEv" } }
+   f4<^^a1>();
+ // { dg-final { scan-assembler "_Z2f4ILDmsb2a1EE4TClsIXszDST_EEEv" } }
+   f4<^^A>();
+ // { dg-final { scan-assembler "_Z2f4ILDmen4Enum1AEE4TClsIXszDST_EEEv" } }
+   f4<^^TVar>();
+ // { dg-final { scan-assembler "_Z2f4ILDmvt4TVarEE4TClsIXszDST_EEEv" } }
+   f5<^^i>();
+ // { dg-final { scan-assembler "_Z2f5ILDmvr1iEEDtDST_EEv" } }
+   f5<^^a1>();
+ // { dg-final { scan-assembler "_Z2f5ILDmsb2a1EEDtDST_EEv" } }
+   f5<^^A>();
+ // { dg-final { scan-assembler "_Z2f5ILDmen4Enum1AEEDtDST_EEv" } }
+   f5<^^TVar>();
+ // { dg-final { scan-assembler "_Z2f5ILDmvt4TVarEEDtDST_EEv" } }
+   f5<^^Concept>();
+ // { dg-final { scan-assembler "_Z2f5ILDmco7ConceptEEDtDST_EEv" } }
+   f5<^^p>();
+ // { dg-final { scan-assembler "_Z2f5ILDmvrZ1giE1pEEDtDST_EEv" } }
+   f5<std::meta::reflect_constant (42)>();
+ // { dg-final { scan-assembler "_Z2f5ILDmvlLi42EEEDtDST_EEv" } }
+   f5<std::meta::reflect_object (arr[1])>();
+ // { dg-final { scan-assembler "_Z2f5ILDmobixL_Z3arrEL\[ilx]1EEEDtDST_EEv" } }
+   f5<bases_of (^^S, ctx)[0]>();
+ // { dg-final { scan-assembler "_Z2f5ILDmba_1SEEDtDST_EEv" } }
+   f6<Y>(Y{42});
+ // { dg-final { scan-assembler "_Z2f6I1YEDaDSLDmtyT_EE" } }
+   f7<^^TCls>(TCls<0>{});
+ // { dg-final { scan-assembler "_Z2f7ILDmct4TClsEEDaDST_ILi0EEE" } }
+   f8<int>(42);
+ // { dg-final { scan-assembler "_Z2f8IiEDaDSLDmtyT_EE" } }
+   f8<Alias>(42);
+ // { dg-final { scan-assembler "_Z2f8IiEDaDSLDmtyT_EE" } }
+   f9<^^int>(42);
+ // { dg-final { scan-assembler "_Z2f9ILDmtyiEEDST_Ei" } }
+   f9<^^Alias>(42);
+ // { dg-final { scan-assembler "_Z2f9ILDmtyiEEDST_Ei" } }
+   f10<^^foo<int>>();
+ // { dg-final { scan-assembler "_Z3f10ILDmfn3fooIiET_S1_EEDTclDST_ELi42EEEv" } }
+   f10<^^foo<Alias>>();
+ // { dg-final { scan-assembler "_Z3f10ILDmfn3fooIiET_S1_EEDTclDST_ELi42EEEv" } }
+   f11<^^foo<int>>(TCls<42>{});
+ // { dg-final { scan-assembler "_Z3f11ILDmfn3fooIiET_S1_EEDa4TClsIXclDST_ELi42EEEE" } }
+   f11<^^foo<Alias>>(TCls<42>{});
+ // { dg-final { scan-assembler "_Z3f11ILDmfn3fooIiET_S1_EEDa4TClsIXclDST_ELi42EEEE" } }
+   f12<int>();
+ // { dg-final { scan-assembler "_Z3f12IiEDScl2idIT_EEEv" } }
+   f12<Alias>();
+ // { dg-final { scan-assembler "_Z3f12IiEDScl2idIT_EEEv" } }
+   f13<^^Y>(42);
+ // { dg-final { scan-assembler "_Z3f13ILDmty1YEEDaNDST_E4typeE" } }
+   f14<^^int>();
+ // { dg-final { scan-assembler "_Z3f14ILDmtyiEEDST_Ev" } }
+   f14<^^TCls<1>>();
+ // { dg-final { scan-assembler "_Z3f14ILDmty4TClsILi1EEEEDST_Ev" } }
+   f15<Y, ^^Y::i>();
+ // { dg-final { scan-assembler "_Z3f15I1YLDmdmS0_1iEEDtdttlT_EDST0_EEv" } }
+   f15<B<int>, ^^B<int>::t>();
+ // { dg-final { scan-assembler "_Z3f15I1BIiELDmdmS1_1tEEDtdttlT_EDST0_EEv" } }
+   f16<B<int>, ^^B<int>::fn>();
+ // { dg-final { scan-assembler "_Z3f16I1BIiELDmfnNS1_2fnEvEEDTcldttlT_EDST0_EEEv" } }
+   f17<^^Y, ^^Y::i>();
+ // { dg-final { scan-assembler "_Z3f17ILDmty1YELDmdmS0_1iEEDtdttlDST_EEDST0_EEv" } }
+   f18<^^Y::i>();
+ // { dg-final { scan-assembler "_Z3f18ILDmdm1Y1iEEDtdttlS0_EDST_EEv" } }
+   f19<B>();
+ // { dg-final { scan-assembler "_Z3f19I1BEDSLDmttT_EIiEEv" } }
+   f20<Y>();
+ // { dg-final { scan-assembler "_Z3f20I1YEDSLDmtyNT_4typeEEEv" } }
+   f21<Y>();
+ // { dg-final { scan-assembler "_Z3f21I1YEDTadDSLDmdesrT_1iEEEv" } }
+   f22<B<int>>();
+ // { dg-final { scan-assembler "_Z3f22I1BIiEEDTadDSLDmdesrT_2fnEEEv" } }
+   f23<B<int>>();
+ // { dg-final { scan-assembler "_Z3f23I1BIiEEDSLDmtyNT_1CIiEEEEv" } }
+   f24<B<int>>();
+ // { dg-final { scan-assembler "_Z3f24I1BIiEEDSLDmtyNT_1UIiEEEEv" } }
+   f24<B<Alias>>();
+ // { dg-final { scan-assembler "_Z3f24I1BIiEEDSLDmtyNT_1UIiEEEEv" } }
+   f25<^^arr>();
+ // { dg-final { scan-assembler "_Z3f25ILDmvr3arrEEPDtDST_EEv" } }
+   constexpr auto r = f26<std::meta::info>({});
+   f27<^^::>(42);
+ // { dg-final { scan-assembler "_Z3f27ILDmgsEEDaNDST_E5AliasE" } }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle4.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle4.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle4.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle4.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,26 ----
+ // PR c++/124771
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <mdspan>
+ #include <meta>
+ 
+ namespace std {
+ template<random_access_iterator I>
+   struct iterator_accessor {
+     using element_type     = typename [: 
+       [] { return ^^iter_value_t<I>; }() 
+     :];
+ 
+     constexpr iterator_accessor() noexcept = default;
+     constexpr operator default_accessor<const element_type>() noexcept
+       requires contiguous_iterator<I> && (!is_const_v<element_type>)
+         { return {}; }
+   };
+ }
+ 
+ int main() {
+   // ??? It's not clear which of these should error.
+   std::default_accessor<int>       _ = std::iterator_accessor<int*>();
+   std::default_accessor<const int> _ = std::iterator_accessor<int*>(); // { dg-error "conversion" }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle5.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle5.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle5.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle5.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,25 ----
+ // PR c++/124842
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ inline constexpr int x = 1;
+ template <auto r>
+ typename[: std::meta::type_of(r) :] f() {
+   return 1;
+ }
+ 
+ int
+ f1 ()
+ {
+   return f<^^x>();
+ // { dg-final { scan-assembler "_Z1fITnDaLDmvr1xEEDScl7type_ofT_EEv" } }
+ }
+ 
+ int
+ f2 ()
+ {
+   return f<std::meta::reflect_constant(1)>();
+ // { dg-final { scan-assembler "_Z1fITnDaLDmvlLi1EEEDScl7type_ofT_EEv" } }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle6.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle6.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/mangle6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/mangle6.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/124824
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ template<auto V> void f() { }
+ 
+ int main() {
+   {
+     static constexpr auto M = ^^int;
+     f<&M>();
+   }
+   {
+     static constexpr auto M = ^^int;
+     f<&M>();
+   }
+ }
+ 
+ // { dg-final { scan-assembler "_Z1fITnDaXadL_ZZ4mainE1MEEEvv" } }
+ // { dg-final { scan-assembler "_Z1fITnDaXadL_ZZ4mainE1M_0EEEvv" } }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/member23.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/member23.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/member23.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/member23.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/124614
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ using namespace std::meta;
+ 
+ struct B { int id; };
+ 
+ void
+ f (int p)
+ {
+   B b;
+   b.[:reflect_constant (^^B::id):]; // { dg-error "access a class member" }
+   b.[:reflect_constant (&B::id):];  // { dg-error "access a class member" }
+   b.[:reflect_constant (data_member_spec (^^int, { .name = "i" })):]; // { dg-error "access a class member" }
+   b.[:reflect_constant (false):];   // { dg-error "access a class member" }
+   b.[:reflect_constant (42):];	    // { dg-error "access a class member" }
+   b.[:reflect_constant (3.14f):];   // { dg-error "access a class member" }
+   b.[:reflect_constant (&::f):];    // { dg-error "access a class member" }
+   b.[:reflect_constant (^^::):];    // { dg-error "access a class member" }
+   b.[:reflect_constant (info{}):];  // { dg-error "access a class member" }
+   b.[:reflect_constant (^^p):];	    // { dg-error "access a class member" }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/null6.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/null6.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/null6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/null6.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,8 ----
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ using info = decltype(^^::);
+ constexpr auto null = info{};
+ constexpr auto q = [:null:];  // { dg-error "cannot splice a null reflection" }
+ [:null:] t1;		      // { dg-error "cannot splice a null reflection|expected" }
+ [:null:]<int> t2;	      // { dg-error "cannot splice a null reflection|expected" }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/reflect_constant_array10.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/reflect_constant_array10.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/reflect_constant_array10.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/reflect_constant_array10.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,57 ----
+ // LWG4483 - Multidimensional arrays are not supported by
+ // meta::reflect_constant_array and related functions.
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <ranges>
+ #include <meta>
+ 
+ consteval auto
+ foo ()
+ {
+   int a[3][3][3];
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	a[i][j][k] = i + 3 * j + 9 * k;
+   std::span <int[3][3]> b = a;
+   return std::meta::reflect_constant_array (b);
+ }
+ 
+ static_assert (foo () == foo ());
+ static_assert (type_of (foo ()) == ^^const int [3][3][3]);
+ constexpr auto &m = [: foo () :];
+ static_assert (foo () == std::meta::reflect_constant_array (m));
+ static_assert (foo () == std::meta::reflect_constant_array (std::span <const int[3][3]> (m)));
+ consteval {
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	if (m[i][j][k] != i + 3 * j + 9 * k)
+ 	  throw 1;
+ }
+ 
+ consteval auto
+ bar ()
+ {
+   int a[3][3][3];
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	a[i][j][k] = i + 3 * j + 9 * k;
+   std::span <int[3][3]> b = a;
+   return std::meta::reflect_constant_array (b | std::views::reverse);
+ }
+ 
+ static_assert (bar () == bar ());
+ static_assert (type_of (bar ()) == ^^const int [3][3][3]);
+ constexpr auto &n = [: bar () :];
+ static_assert (bar () == std::meta::reflect_constant_array (n));
+ static_assert (bar () == std::meta::reflect_constant_array (std::span <const int[3][3]> (n)));
+ consteval {
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	if (n[i][j][k] != (2 - i) + 3 * j + 9 * k)
+ 	  throw 1;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/reflect_constant_array11.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/reflect_constant_array11.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/reflect_constant_array11.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/reflect_constant_array11.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ // Test std::meta::reflect_constant_string.
+ 
+ #include <meta>
+ #include <ranges>
+ #include <span>
+ 
+ using namespace std::meta;
+ 
+ struct A { int a, b; mutable int c; };
+ constexpr A aa[2] = { { 1, 2, 3 }, { 4, 5, 6 } };
+ constexpr auto a = reflect_constant_array (aa);
+ // { dg-error "'reflect_constant_array' argument with 'std::ranges::range_value_t<const A \\\[2\\\]>' \\\{aka 'A'\\\} which is not a structural type" "" { target *-*-* } .-1 }
+ struct B { constexpr B (int x, int y) : a (x), b (y) {} constexpr ~B () {} B (const B &) = delete; int a, b; };
+ constexpr B b[2][2] = { { { 1, 2 }, { 2, 3 } }, { { 3, 4 }, { 4, 5 } } };
+ constexpr auto c = reflect_constant_array (b);
+ // { dg-error "'reflect_constant_array' argument with 'std::ranges::range_value_t<const B \\\[2\\\]\\\[2\\\]>' \\\{aka 'B \\\[2\\\]'\\\} which is not copy constructible" "" { target *-*-* } .-1 }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/reflect_constant_array9.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/reflect_constant_array9.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/reflect_constant_array9.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/reflect_constant_array9.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,28 ----
+ // LWG4483 - Multidimensional arrays are not supported by
+ // meta::reflect_constant_array and related functions.
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ consteval auto
+ foo ()
+ {
+   int a[3][3][3];
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	a[i][j][k] = i + j + k;
+   return std::meta::reflect_constant_array (a);
+ }
+ 
+ static_assert (foo () == foo ());
+ static_assert (type_of (foo ()) == ^^const int [3][3][3]);
+ constexpr auto &m = [: foo () :];
+ consteval {
+   for (int i = 0; i < 3; ++i)
+     for (int j = 0; j < 3; ++j)
+       for (int k = 0; k < 3; ++k)
+ 	if (m[i][j][k] != i + j + k)
+ 	  throw 1;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/splice12.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/splice12.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/splice12.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/splice12.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/123783
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ void
+ bar (int a)
+ {
+ }
+ 
+ void
+ foo (int a)
+ {
+   auto b = &[: ^^a :];
+   auto c = &[: variable_of (parameters_of (^^foo)[0]) :];
+   auto d = &[: parameters_of (^^foo)[0] :];			// { dg-error "cannot use 'a' function parameter reflection in a splice expression" }
+ 								// { dg-message "apply 'std::meta::variable_of' on it before splicing" "" { target *-*-* } .-1 }
+   auto e = &[: parameters_of (^^bar)[0] :];			// { dg-error "cannot use 'a' function parameter reflection in a splice expression" }
+   auto f = [] { auto g = &[: parameters_of (^^foo)[0] :]; };	// { dg-error "cannot use 'a' function parameter reflection in a splice expression" }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/reflect/type_trait13.C gcc-16-20260419/gcc/testsuite/g++.dg/reflect/type_trait13.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/reflect/type_trait13.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/reflect/type_trait13.C	Sun Apr 19 22:32:12 2026
*************** static_assert (is_swappable_type (^^std:
*** 213,223 ****
  static_assert (is_swappable_type (^^std::queue <int> [1][2]));
  static_assert (is_swappable_type (^^std::queue <int> [1][2][3]));
  static_assert (is_swappable_type (^^std::queue <N1::Nontrivial>));
! //static_assert (is_swappable_type (^^std::priority_queue <int>));
! //static_assert (is_swappable_type (^^std::priority_queue <int> [1]));
! //static_assert (is_swappable_type (^^std::priority_queue <int> [1][2]));
! //static_assert (is_swappable_type (^^std::priority_queue <int> [1][2][3]));
! //static_assert (is_swappable_type (^^std::priority_queue <N1::Nontrivial, std::vector <N1::Nontrivial>, funny1::DummyCmp>));
  static_assert (is_swappable_type (^^std::stack <int>));
  static_assert (is_swappable_type (^^std::stack <int> [1]));
  static_assert (is_swappable_type (^^std::stack <int> [1][2]));
--- 213,223 ----
  static_assert (is_swappable_type (^^std::queue <int> [1][2]));
  static_assert (is_swappable_type (^^std::queue <int> [1][2][3]));
  static_assert (is_swappable_type (^^std::queue <N1::Nontrivial>));
! static_assert (is_swappable_type (^^std::priority_queue <int>));
! static_assert (is_swappable_type (^^std::priority_queue <int> [1]));
! static_assert (is_swappable_type (^^std::priority_queue <int> [1][2]));
! static_assert (is_swappable_type (^^std::priority_queue <int> [1][2][3]));
! static_assert (is_swappable_type (^^std::priority_queue <N1::Nontrivial, std::vector <N1::Nontrivial>, funny1::DummyCmp>));
  static_assert (is_swappable_type (^^std::stack <int>));
  static_assert (is_swappable_type (^^std::stack <int> [1]));
  static_assert (is_swappable_type (^^std::stack <int> [1][2]));
*************** static_assert (is_nothrow_swappable_type
*** 321,329 ****
  static_assert (is_nothrow_swappable_type (^^std::array <N1::DelCopy, 0>));
  static_assert (is_nothrow_swappable_type (^^std::array <ns1::SwapThrow, 0>));
  static_assert (is_nothrow_swappable_type (^^std::queue <int>));
! //static_assert (is_nothrow_swappable_type (^^std::priority_queue <int>));
  static_assert (is_nothrow_swappable_type (^^std::stack <int>));
! //static_assert (is_nothrow_swappable_type (^^std::priority_queue <int, std::vector <int>, comps::CompareNoThrowCopyable>));
  static_assert (!is_nothrow_swappable_type (^^void));
  static_assert (!is_nothrow_swappable_type (^^const void));
  static_assert (!is_nothrow_swappable_type (^^void ()));
--- 321,329 ----
  static_assert (is_nothrow_swappable_type (^^std::array <N1::DelCopy, 0>));
  static_assert (is_nothrow_swappable_type (^^std::array <ns1::SwapThrow, 0>));
  static_assert (is_nothrow_swappable_type (^^std::queue <int>));
! static_assert (is_nothrow_swappable_type (^^std::priority_queue <int>));
  static_assert (is_nothrow_swappable_type (^^std::stack <int>));
! static_assert (is_nothrow_swappable_type (^^std::priority_queue <int, std::vector <int>, comps::CompareNoThrowCopyable>));
  static_assert (!is_nothrow_swappable_type (^^void));
  static_assert (!is_nothrow_swappable_type (^^const void));
  static_assert (!is_nothrow_swappable_type (^^void ()));
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/torture/pr120098.C gcc-16-20260419/gcc/testsuite/g++.dg/torture/pr120098.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/torture/pr120098.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/torture/pr120098.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,47 ----
+ // { dg-do run }
+ 
+ #define N ((int*)0)
+ namespace {
+ class A {
+ public:
+   unsigned length;
+ };
+ class B {};
+ class MultiTermDocs : public virtual B {
+ protected:
+   A readerTermDocs;
+   A subReaders;
+   virtual B *m_fn1(int *) { return (B *)0; }
+   virtual inline  ~MultiTermDocs();
+   inline void wrap(void)
+   {
+   m_fn1(N);
+   m_fn1(N);
+   m_fn1(N);
+   m_fn1(N);
+   m_fn1(N);
+   m_fn1(N);
+   m_fn1(N);
+   m_fn1(N);
+   m_fn1(N);
+   }
+ };
+ class C : MultiTermDocs {
+   B *m_fn1(int *);
+ };
+ MultiTermDocs::~MultiTermDocs() {
+   wrap ();
+   if (&readerTermDocs) {
+     B *a;
+     for (unsigned i = 0; i < subReaders.length; i++)
+       (a != 0);
+   }
+ }
+ 
+ B *C::m_fn1(int *) { __builtin_abort (); }
+ }
+ 
+ int main()
+ {
+   class C c;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/torture/pr124875.C gcc-16-20260419/gcc/testsuite/g++.dg/torture/pr124875.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/torture/pr124875.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/g++.dg/torture/pr124875.C	Sun Apr 19 22:32:12 2026
***************
*** 0 ****
--- 1,112 ----
+ // { dg-do run }
+ 
+ #include <memory>  // unique_ptr
+ #include <utility> // std::move
+ 
+ namespace {
+ 
+ template <typename T, unsigned N>
+ struct SmallVector {
+   alignas(T) char InlineElts[sizeof(T) * N];
+ 
+   unsigned Size = 0;
+   //[[gnu::optimize(0)]]
+   T* begin() { return (T*)this->InlineElts; }
+   //[[gnu::optimize(0)]]
+   T* end() { return begin() + this->Size; }
+ 
+   [[gnu::optimize(0)]]
+   ~SmallVector() {
+     this->destroy_range(this->begin(), this->end());
+   }
+ 
+   [[gnu::optimize(0)]]
+   static void destroy_range(T *S, T *E) {
+     while (S != E) {
+       --E;
+       E->~T();
+     }
+   }
+ 
+   //[[gnu::optimize(0)]]
+   void push_back(T &&Elt) {
+     ::new ((void *)this->end()) T(std::move(Elt));
+     this->Size += 1;
+   }
+ };
+ 
+ ////////////////////////
+ 
+ template <class T> struct Expected {
+   using E = std::unique_ptr<int>;
+ 
+   [[gnu::optimize(0)]]
+   explicit Expected(T &&Val)
+   {
+     HasError = false;
+     new (&t) T(std::forward<T>(Val));
+   }
+ 
+   [[gnu::optimize(0)]]
+   explicit Expected(Expected &&Other) {
+     HasError = Other.HasError;
+ 
+     if (!HasError)
+       new (&t) T(std::move(Other.t));
+     else
+       new (&e) E(std::move(Other.e));
+   }
+ 
+   Expected &operator=(Expected &&Other) = delete;
+ 
+   //[[gnu::optimize(0)]]
+   ~Expected() {
+     if (!HasError)
+       t.~T();
+     else
+       e.~E();
+   }
+ 
+   [[gnu::optimize(0)]]
+   T& get() {
+     return t;
+   }
+ 
+   union {
+     T t;
+     E e;
+   };
+   bool HasError;
+ };
+ 
+ struct EA {
+   bool destroyed;
+ 
+   [[gnu::optimize(0)]]
+   EA() : destroyed(false) {}
+   [[gnu::optimize(0)]]
+   // catch double desruction
+   ~EA() { if (destroyed) __builtin_abort();  destroyed = true; }
+ };
+ 
+ [[gnu::optimize(0)]]
+ static std::unique_ptr<EA> mkEA() {
+   return std::make_unique<EA>();
+ }
+ 
+ //__attribute__((optimize(0)))
+ [[gnu::noinline]]
+ static void parseCallExpr_() {
+   SmallVector<std::unique_ptr<EA>, 4> Args;
+   Expected<std::unique_ptr<EA>> Arg =
+       Expected<std::unique_ptr<EA>>(mkEA());
+ 
+   Args.push_back(std::move(Arg.get()));
+ }
+ 
+ }
+ 
+ [[gnu::optimize(0)]]
+ int main() {
+   parseCallExpr_();
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/vect/vect-pr124037.cc gcc-16-20260419/gcc/testsuite/g++.dg/vect/vect-pr124037.cc
*** gcc-16-20260412/gcc/testsuite/g++.dg/vect/vect-pr124037.cc	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/vect/vect-pr124037.cc	Sun Apr 19 22:32:12 2026
***************
*** 1,6 ****
  /* PR tree-optimization/124037 */
- /* { dg-require-effective-target mmap } */
- /* { dg-require-effective-target vect_early_break } */
  /* { dg-additional-options "-std=c++11" } */
  
  struct Token
--- 1,4 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C	Sun Apr 19 22:32:12 2026
***************
*** 93,100 ****
  #define import 1			// { dg-error "keyword 'import' defined as macro" "" { target c++26 } }
  #define module 1			// { dg-error "keyword 'module' defined as macro" "" { target c++26 } }
  #define override 1			// { dg-error "keyword 'override' defined as macro" "" { target c++26 } }
! #define post 1
! #define pre 1
  #define replaceable_if_eligible
  #define trivially_relocatable_if_eligible
  
--- 93,100 ----
  #define import 1			// { dg-error "keyword 'import' defined as macro" "" { target c++26 } }
  #define module 1			// { dg-error "keyword 'module' defined as macro" "" { target c++26 } }
  #define override 1			// { dg-error "keyword 'override' defined as macro" "" { target c++26 } }
! #define post 1				// { dg-error "keyword 'post' defined as macro" "" { target c++26 } }
! #define pre 1				// { dg-error "keyword 'pre' defined as macro" "" { target c++26 } }
  #define replaceable_if_eligible
  #define trivially_relocatable_if_eligible
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C	Sun Apr 19 22:32:12 2026
***************
*** 93,100 ****
  #define import 1			// { dg-warning "keyword 'import' defined as macro" "" { target c++26 } }
  #define module 1			// { dg-warning "keyword 'module' defined as macro" "" { target c++26 } }
  #define override 1			// { dg-warning "keyword 'override' defined as macro" "" { target c++26 } }
! #define post 1
! #define pre 1
  #define replaceable_if_eligible
  #define trivially_relocatable_if_eligible
  
--- 93,100 ----
  #define import 1			// { dg-warning "keyword 'import' defined as macro" "" { target c++26 } }
  #define module 1			// { dg-warning "keyword 'module' defined as macro" "" { target c++26 } }
  #define override 1			// { dg-warning "keyword 'override' defined as macro" "" { target c++26 } }
! #define post 1				// { dg-warning "keyword 'post' defined as macro" "" { target c++26 } }
! #define pre 1				// { dg-warning "keyword 'pre' defined as macro" "" { target c++26 } }
  #define replaceable_if_eligible
  #define trivially_relocatable_if_eligible
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C	Sun Apr 19 22:32:12 2026
***************
*** 93,100 ****
  #undef import 				// { dg-error "undefining keyword 'import'" "" { target c++26 } }
  #undef module 				// { dg-error "undefining keyword 'module'" "" { target c++26 } }
  #undef override 			// { dg-error "undefining keyword 'override'" "" { target c++26 } }
! #undef post
! #undef pre
  #undef replaceable_if_eligible
  #undef trivially_relocatable_if_eligible
  
--- 93,100 ----
  #undef import 				// { dg-error "undefining keyword 'import'" "" { target c++26 } }
  #undef module 				// { dg-error "undefining keyword 'module'" "" { target c++26 } }
  #undef override 			// { dg-error "undefining keyword 'override'" "" { target c++26 } }
! #undef post	 			// { dg-error "undefining keyword 'post'" "" { target c++26 } }
! #undef pre	 			// { dg-error "undefining keyword 'pre'" "" { target c++26 } }
  #undef replaceable_if_eligible
  #undef trivially_relocatable_if_eligible
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C	Sun Apr 19 22:32:12 2026
***************
*** 93,100 ****
  #undef import 				// { dg-warning "undefining keyword 'import'" "" { target c++26 } }
  #undef module 				// { dg-warning "undefining keyword 'module'" "" { target c++26 } }
  #undef override 			// { dg-warning "undefining keyword 'override'" "" { target c++26 } }
! #undef post
! #undef pre
  #undef replaceable_if_eligible
  #undef trivially_relocatable_if_eligible
  
--- 93,100 ----
  #undef import 				// { dg-warning "undefining keyword 'import'" "" { target c++26 } }
  #undef module 				// { dg-warning "undefining keyword 'module'" "" { target c++26 } }
  #undef override 			// { dg-warning "undefining keyword 'override'" "" { target c++26 } }
! #undef post	 			// { dg-warning "undefining keyword 'post'" "" { target c++26 } }
! #undef pre	 			// { dg-warning "undefining keyword 'pre'" "" { target c++26 } }
  #undef replaceable_if_eligible
  #undef trivially_relocatable_if_eligible
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C	Sun Apr 19 22:32:12 2026
***************
*** 3,9 ****
  // { dg-do preprocess }
  // { dg-options "-Wkeyword-macro" }
  // { dg-additional-options "-fmodules" { target c++20 } }
- // { dg-additional-options "-fcontracts" { target c++26 } }
  
  // [lex.key]
  #define alignas 1			// { dg-warning "keyword 'alignas' defined as macro" "" { target c++11 } }
--- 3,8 ----
***************
*** 94,101 ****
  #define import 1			// { dg-warning "keyword 'import' defined as macro" "" { target c++20 } }
  #define module 1			// { dg-warning "keyword 'module' defined as macro" "" { target c++20 } }
  #define override 1			// { dg-warning "keyword 'override' defined as macro" "" { target c++11 } }
! #define post 1
! #define pre 1
  #define replaceable_if_eligible
  #define trivially_relocatable_if_eligible
  
--- 93,100 ----
  #define import 1			// { dg-warning "keyword 'import' defined as macro" "" { target c++20 } }
  #define module 1			// { dg-warning "keyword 'module' defined as macro" "" { target c++20 } }
  #define override 1			// { dg-warning "keyword 'override' defined as macro" "" { target c++11 } }
! #define post 1				// { dg-warning "keyword 'post' defined as macro" "" { target c++26 } }
! #define pre 1				// { dg-warning "keyword 'pre' defined as macro" "" { target c++26 } }
  #define replaceable_if_eligible
  #define trivially_relocatable_if_eligible
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C
*** gcc-16-20260412/gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C	Sun Apr 12 22:32:10 2026
--- gcc-16-20260419/gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C	Sun Apr 19 22:32:12 2026
***************
*** 3,9 ****
  // { dg-do preprocess }
  // { dg-options "-Wkeyword-macro" }
  // { dg-additional-options "-fmodules" { target c++20 } }
- // { dg-additional-options "-fcontracts" { target c++26 } }
  
  // [lex.key]
  #undef alignas				// { dg-warning "undefining keyword 'alignas'" "" { target c++11 } }
--- 3,8 ----
***************
*** 94,101 ****
  #undef import				// { dg-warning "undefining keyword 'import'" "" { target c++20 } }
  #undef module				// { dg-warning "undefining keyword 'module'" "" { target c++20 } }
  #undef override				// { dg-warning "undefining keyword 'override'" "" { target c++11 } }
! #undef post
! #undef pre
  #undef replaceable_if_eligible
  #undef trivially_relocatable_if_eligible
  
--- 93,100 ----
  #undef import				// { dg-warning "undefining keyword 'import'" "" { target c++20 } }
  #undef module				// { dg-warning "undefining keyword 'module'" "" { target c++20 } }
  #undef override				// { dg-warning "undefining keyword 'override'" "" { target c++11 } }
! #undef post				// { dg-warning "undefining keyword 'post'" "" { target c++26 } }
! #undef pre				// { dg-warning "undefining keyword 'pre'" "" { target c++26 } }
  #undef replaceable_if_eligible
  #undef trivially_relocatable_if_eligible
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.c-torture/compile/pr124643.c gcc-16-20260419/gcc/testsuite/gcc.c-torture/compile/pr124643.c
*** gcc-16-20260412/gcc/testsuite/gcc.c-torture/compile/pr124643.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.c-torture/compile/pr124643.c	Sun Apr 19 22:32:13 2026
***************
*** 0 ****
--- 1,8 ----
+ int a;
+ char *b;
+ void c(int a) {
+   int d = (a & 2) != 0 && a & 1;
+   for (;;)
+     if (a)
+       b[1 ^ d] = b[d];
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/bitint-128.c gcc-16-20260419/gcc/testsuite/gcc.dg/bitint-128.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/bitint-128.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/bitint-128.c	Sun Apr 19 22:32:13 2026
***************
*** 0 ****
--- 1,27 ----
+ /* PR tree-optimization/124826 */
+ /* { dg-do compile { target bitint } } */
+ /* { dg-options "-O2" } */
+ 
+ typedef float V __attribute__((vector_size (16 * sizeof (float))));
+ 
+ union {
+ #if __BITINT_MAXWIDTH__ >= 256
+   _BitInt(256) b;
+ #endif
+   V v;
+ } u;
+ 
+ void
+ foo (int c)
+ {
+   u.v -= c ? 0.f : 1.f;
+ #if __BITINT_MAXWIDTH__ >= 256
+   u.b *= c;
+ #endif
+ }
+ 
+ int
+ main ()
+ {
+   foo (2);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/bitint-31.c gcc-16-20260419/gcc/testsuite/gcc.dg/bitint-31.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/bitint-31.c	Sun Apr 12 22:32:11 2026
--- gcc-16-20260419/gcc/testsuite/gcc.dg/bitint-31.c	Sun Apr 19 22:32:13 2026
***************
*** 1,7 ****
  /* PR c/102989 */
  /* { dg-do run } */
  /* { dg-require-effective-target fenv } */
! /* { dg-options "-std=c23" } */
  /* { dg-add-options ieee } */
  
  #include <fenv.h>
--- 1,8 ----
  /* PR c/102989 */
  /* { dg-do run } */
  /* { dg-require-effective-target fenv } */
! /* { dg-require-effective-target hard_float } */
! /* { dg-options "-std=c23 -frounding-math" } */
  /* { dg-add-options ieee } */
  
  #include <fenv.h>
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/bitintext.h gcc-16-20260419/gcc/testsuite/gcc.dg/bitintext.h
*** gcc-16-20260412/gcc/testsuite/gcc.dg/bitintext.h	Sun Apr 12 22:32:11 2026
--- gcc-16-20260419/gcc/testsuite/gcc.dg/bitintext.h	Sun Apr 19 22:32:13 2026
*************** do_copy (void *p, const void *q, __SIZE_
*** 16,22 ****
  #define CEIL(x,y) (((x) + (y) - 1) / (y))
  
  /* Promote a _BitInt type to include its padding bits.  */
! #if defined (__s390x__) || defined(__arm__)
  #define PROMOTED_SIZE(x) sizeof (x)
  #elif defined(__loongarch__)
  #define PROMOTED_SIZE(x) (sizeof (x) > 8 ? CEIL (S (x), 64) * 8 : sizeof (x))
--- 16,22 ----
  #define CEIL(x,y) (((x) + (y) - 1) / (y))
  
  /* Promote a _BitInt type to include its padding bits.  */
! #if defined (__s390x__) || defined(__arm__) || defined(__riscv__)
  #define PROMOTED_SIZE(x) sizeof (x)
  #elif defined(__loongarch__)
  #define PROMOTED_SIZE(x) (sizeof (x) > 8 ? CEIL (S (x), 64) * 8 : sizeof (x))
*************** do_copy (void *p, const void *q, __SIZE_
*** 24,30 ****
  
  /* Macro to test whether (on targets where psABI requires it) _BitInt
     with padding bits have those filled with sign or zero extension.  */
! #if defined(__s390x__) || defined(__arm__) || defined(__loongarch__)
  #define BEXTC1(x, uns) \
    do {							  \
      uns _BitInt(PROMOTED_SIZE (x) * __CHAR_BIT__) __x;	  \
--- 24,31 ----
  
  /* Macro to test whether (on targets where psABI requires it) _BitInt
     with padding bits have those filled with sign or zero extension.  */
! #if defined(__s390x__) || defined(__arm__) || defined(__loongarch__) \
!     || defined(__riscv__)
  #define BEXTC1(x, uns) \
    do {							  \
      uns _BitInt(PROMOTED_SIZE (x) * __CHAR_BIT__) __x;	  \
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/ipa/pr124777.c gcc-16-20260419/gcc/testsuite/gcc.dg/ipa/pr124777.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/ipa/pr124777.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/ipa/pr124777.c	Sun Apr 19 22:32:13 2026
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fno-early-inlining" } */
+ 
+ int a;
+ char b;
+ void c() {
+     __builtin_exit(0);
+ }
+ 
+ typedef short (*t_d)(unsigned);
+ 
+ static short __attribute__((noclone))
+ d(unsigned f)
+ {
+   if (f == (unsigned)(unsigned short)-1)
+     c ();
+   for (; a; a++)
+     ;
+   return 0;
+ }
+ 
+ typedef short (*t_g)(unsigned, unsigned, unsigned short, t_d);
+ 
+ static short  __attribute__((noclone))
+ g(unsigned f, unsigned h, unsigned short i, t_d p_d) {
+   if (f || h)
+     p_d(i);
+   return 0;
+ }
+ 
+ static unsigned  __attribute__((noclone))
+ j(unsigned f, signed char h, t_d p_d, t_g p_g) {
+   p_g(b, 1, h, p_d);
+   return 0;
+ }
+ 
+ int main() {
+   signed char e = -1;
+   j(0, e, d, g);
+   return 0;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc gcc-16-20260419/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc
*** gcc-16-20260412/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc	Sun Apr 12 22:32:11 2026
--- gcc-16-20260419/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc	Sun Apr 19 22:32:13 2026
*************** public:
*** 119,125 ****
      }
    };
  
!   bool matches_call_types_p (const call_details &cd) const
    {
      return cd.num_args () == 3;
    }
--- 119,125 ----
      }
    };
  
!   bool matches_call_types_p (const call_details &cd) const override
    {
      return cd.num_args () == 3;
    }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc gcc-16-20260419/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc
*** gcc-16-20260412/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc	Sun Apr 12 22:32:11 2026
--- gcc-16-20260419/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc	Sun Apr 19 22:32:13 2026
*************** example_4 ()
*** 481,492 ****
  	      gimple *stmt = gsi_stmt (gsi);
  	      event_location_t *evloc = NULL;
  	      gcall *call = NULL;
! 	      if (call = check_for_named_call (stmt, "acquire_lock_a", 0))
  		evloc = (in_foo
  			 ? &call_to_acquire_lock_a_in_foo
  			 : &call_to_acquire_lock_a_in_bar);
! 	      else if (call
! 		       = check_for_named_call (stmt, "acquire_lock_b", 0))
  		evloc = (in_foo
  			 ? &call_to_acquire_lock_b_in_foo
  			 : &call_to_acquire_lock_b_in_bar);
--- 481,493 ----
  	      gimple *stmt = gsi_stmt (gsi);
  	      event_location_t *evloc = NULL;
  	      gcall *call = NULL;
! 	      if ((call = check_for_named_call (stmt, "acquire_lock_a", 0)) !=
! 		  NULL)
  		evloc = (in_foo
  			 ? &call_to_acquire_lock_a_in_foo
  			 : &call_to_acquire_lock_a_in_bar);
! 	      else if ((call = check_for_named_call (stmt, "acquire_lock_b",
! 						     0)) != NULL)
  		evloc = (in_foo
  			 ? &call_to_acquire_lock_b_in_foo
  			 : &call_to_acquire_lock_b_in_bar);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/pr124809.c gcc-16-20260419/gcc/testsuite/gcc.dg/pr124809.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/pr124809.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/pr124809.c	Sun Apr 19 22:32:13 2026
***************
*** 0 ****
--- 1,45 ----
+ /* { dg-do run } */
+ /* { dg-options "-O1 -fno-tree-ch -fno-tree-dce" } */
+ unsigned short a, c, d;
+ short f(short g, short h) { return h; }
+ short f1(short g, short h) { return g; }
+ __attribute__((noipa)) void sink(...){__builtin_abort();}
+ __attribute__((noinline))
+ int i(signed char g) {
+   unsigned short j;
+   int b=0, k;
+   while (d < 8) {
+     if ((b = a != g) ^ a) {
+       j = b + a;
+       k = j;
+       return a ? 0 : k >> a;
+     }
+    b = f(d && c, a);
+   }
+   sink(b);
+   return 100;
+ }
+ __attribute__((noinline))
+ int i1(signed char g) {
+   unsigned short j;
+   int b=0, k;
+   while (d < 8) {
+     if ((b = a != g) ^ a) {
+       j = b + a;
+       k = j;
+       return a ? 0 : k >> a;
+     }
+    b = f1(a, d && c);
+   }
+   sink(b);
+   return 100;
+ }
+ int main() {
+   int t = i(1);
+   if (t != 1)
+     __builtin_abort();
+   t = i1(1);
+   if (t != 1)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/torture/bitint-86.c gcc-16-20260419/gcc/testsuite/gcc.dg/torture/bitint-86.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/torture/bitint-86.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/torture/bitint-86.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,96 ----
+ /* PR middle-end/123635 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-require-effective-target sync_char_short } */
+ /* { dg-options "-std=c23 -pedantic-errors" } */
+ /* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 1025
+ _BitInt(513) a, b, c, d;
+ unsigned _BitInt(513) e, f, g, h;
+ _BitInt(1025) i, j, k, l;
+ unsigned _BitInt(1025) m, n, o, p;
+ #endif
+ 
+ #include "../bitintext.h"
+ 
+ #if __BITINT_MAXWIDTH__ >= 1025
+ [[gnu::noipa]] void
+ f1 (_BitInt(513) q, _BitInt(513) r, _BitInt(513) s,
+     unsigned _BitInt(513) t, unsigned _BitInt(513) u, unsigned _BitInt(513) v)
+ {
+   a = q + r;
+   BEXTC (a);
+   b = r + s;
+   BEXTC (b);
+   c = q - r;
+   BEXTC (c);
+   d = q - s;
+   BEXTC (d);
+   e = t + u;
+   BEXTC (e);
+   f = u + v;
+   BEXTC (f);
+   g = t - u;
+   BEXTC (g);
+   h = t - v;
+   BEXTC (h);
+ }
+ 
+ [[gnu::noipa]] void
+ f2 (_BitInt(513) q, _BitInt(513) r, _BitInt(513) s,
+     unsigned _BitInt(513) t, unsigned _BitInt(513) u, unsigned _BitInt(513) v)
+ {
+   i = q + r;
+   BEXTC (i);
+   j = r + s;
+   BEXTC (j);
+   k = q - r;
+   BEXTC (k);
+   l = q - s;
+   BEXTC (l);
+   m = t + u;
+   BEXTC (m);
+   n = u + v;
+   BEXTC (n);
+   o = t - u;
+   BEXTC (o);
+   p = t - v;
+   BEXTC (p);
+ }
+ #endif
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 1025
+   __builtin_memset (&a, 0x55, sizeof (a));
+   __builtin_memset (&b, 0xaa, sizeof (b));
+   __builtin_memset (&c, 0x55, sizeof (c));
+   __builtin_memset (&d, 0xaa, sizeof (d));
+   __builtin_memset (&e, 0x55, sizeof (e));
+   __builtin_memset (&f, 0xaa, sizeof (f));
+   __builtin_memset (&g, 0x55, sizeof (g));
+   __builtin_memset (&h, 0xaa, sizeof (h));
+   f1 (-2639616085193412675089727272130019765984398127278861998378045997173219392866835944828454559654047247059773556852593471531433454810831298259785611283536204wb,
+       -7234121192495298112713936268702056205915537824658323839255206188456944966709752205781440683757949161649123152428620619997014209098183677328840647884700332wb,
+       8654283549227219676537451326576929768614001427323560383705131223498505581982738964879437520020436012891649083646965651378407397436785749860023553778646861wb,
+       15046745594550617619205422464231805109110883864578289024439083517871820578179553927615539526791313634437787081814763432804808038115388367331529035246240655uwb,
+       20633637828717837096174917874088391607464281656818868213468970773994599068609617673436080725569780340050358299419252926775025136778754971701553110169281151uwb,
+       513612209045189503622076474995216606086383139671427104179978688982034117764664711277072795083902951564358998498109412142322138933760173628255697435284781uwb);
+   __builtin_memset (&i, 0x55, sizeof (i));
+   __builtin_memset (&j, 0xaa, sizeof (j));
+   __builtin_memset (&k, 0x55, sizeof (k));
+   __builtin_memset (&l, 0xaa, sizeof (l));
+   __builtin_memset (&m, 0x55, sizeof (m));
+   __builtin_memset (&n, 0xaa, sizeof (n));
+   __builtin_memset (&o, 0x55, sizeof (o));
+   __builtin_memset (&p, 0xaa, sizeof (p));
+   f2 (-2639616085193412675089727272130019765984398127278861998378045997173219392866835944828454559654047247059773556852593471531433454810831298259785611283536204wb,
+       -7234121192495298112713936268702056205915537824658323839255206188456944966709752205781440683757949161649123152428620619997014209098183677328840647884700332wb,
+       8654283549227219676537451326576929768614001427323560383705131223498505581982738964879437520020436012891649083646965651378407397436785749860023553778646861wb,
+       15046745594550617619205422464231805109110883864578289024439083517871820578179553927615539526791313634437787081814763432804808038115388367331529035246240655uwb,
+       20633637828717837096174917874088391607464281656818868213468970773994599068609617673436080725569780340050358299419252926775025136778754971701553110169281151uwb,
+       513612209045189503622076474995216606086383139671427104179978688982034117764664711277072795083902951564358998498109412142322138933760173628255697435284781uwb);
+ #endif
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/torture/bitint-87.c gcc-16-20260419/gcc/testsuite/gcc.dg/torture/bitint-87.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/torture/bitint-87.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/torture/bitint-87.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,85 ----
+ /* PR middle-end/123635 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-require-effective-target sync_char_short } */
+ /* { dg-options "-std=c23 -pedantic-errors" } */
+ /* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 513
+ _BitInt(513) a, b, c, d;
+ unsigned _BitInt(513) e, f, g, h;
+ _BitInt(513) i, j, k;
+ unsigned _BitInt(513) l, m, n;
+ #endif
+ 
+ #include "../bitintext.h"
+ 
+ #if __BITINT_MAXWIDTH__ >= 513
+ [[gnu::noipa]] void
+ f1 (_BitInt(513) q, _BitInt(513) r, _BitInt(513) s,
+     unsigned _BitInt(513) t, unsigned _BitInt(513) u, unsigned _BitInt(513) v)
+ {
+   a = q * r;
+   BEXTC (a);
+   b = r * s;
+   BEXTC (b);
+   c = q / r;
+   BEXTC (c);
+   d = q / s;
+   BEXTC (d);
+   e = t * u;
+   BEXTC (e);
+   f = u * v;
+   BEXTC (f);
+   g = t / u;
+   BEXTC (g);
+   h = t / v;
+   BEXTC (h);
+ }
+ 
+ [[gnu::noipa]] void
+ f2 (float q, double r, long double s, float t, double u, long double v)
+ {
+   i = q;
+   BEXTC (i);
+   j = r;
+   BEXTC (j);
+   k = s;
+   BEXTC (k);
+   l = t;
+   BEXTC (l);
+   m = u;
+   BEXTC (m);
+   n = v;
+   BEXTC (n);
+ }
+ #endif
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 513
+   __builtin_memset (&a, 0x55, sizeof (a));
+   __builtin_memset (&b, 0xaa, sizeof (b));
+   __builtin_memset (&c, 0x55, sizeof (c));
+   __builtin_memset (&d, 0xaa, sizeof (d));
+   __builtin_memset (&e, 0x55, sizeof (e));
+   __builtin_memset (&f, 0xaa, sizeof (f));
+   __builtin_memset (&g, 0x55, sizeof (g));
+   __builtin_memset (&h, 0xaa, sizeof (h));
+   f1 (-53323980256963787505256507743137477556434962931963225515943461794698643113423wb,
+       -10076482373458251489901780456236592759327822657780415144730546867053397315531wb,
+       9430367348600775477158545473775377451258484445522540280907903691748059121081wb,
+       15046745594550617619205422464231805109110883864578289024439083517871820578179553927615539526791313634437787081814763432804808038115388367331529035246240655uwb,
+       20633637828717837096174917874088391607464281656818868213468970773994599068609617673436080725569780340050358299419252926775025136778754971701553110169281uwb,
+       5136122090451895036220764749952166060863831396714271041799786889820341177646647112770727950839029515643589984981094121423221389337601736282556974uwb);
+   __builtin_memset (&i, 0x55, sizeof (i));
+   __builtin_memset (&j, 0xaa, sizeof (j));
+   __builtin_memset (&k, 0x55, sizeof (k));
+   __builtin_memset (&l, 0xaa, sizeof (l));
+   __builtin_memset (&m, 0x55, sizeof (m));
+   __builtin_memset (&n, 0xaa, sizeof (n));
+   f2 (12345678.5f, -234567891234567.125, 123465987893275.53244532L,
+       12345678.5f, 234567891234567.125, 123465987893275.53244532L);
+ #endif
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/torture/pr124868.c gcc-16-20260419/gcc/testsuite/gcc.dg/torture/pr124868.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/torture/pr124868.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/torture/pr124868.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" } } */
+ /* { dg-additional-options "-fisolate-erroneous-paths-dereference" } */
+ 
+ int a;
+ static void __attribute__((noipa)) c(int b) {}
+ static int * __attribute__((noipa))
+ d()
+ {
+   int g = 0, *h = &g;
+   if (a)
+     {
+       int **i = &h;
+       *i = 0;
+     }
+   c(*h);
+   return h; /* { dg-warning "address of local variable" } */
+ }
+ int
+ main()
+ {
+   d();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/torture/pr124891.c gcc-16-20260419/gcc/testsuite/gcc.dg/torture/pr124891.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/torture/pr124891.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/torture/pr124891.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,10 ----
+ /* PR tree-optimization/124891 */
+ /* { dg-do compile } */
+ 
+ void
+ foo (int x, int y, int z, int *buf)
+ {
+   for (int i = 0; i < x; ++i)
+     for (int j = z; j < x-z; ++z)
+       buf[j + (y - z +i) * x] = buf[x];
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c gcc-16-20260419/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,105 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ typedef unsigned long NI;
+ 
+ struct inner_t_Content
+ {
+   int x[8], y[16];
+   char a[10], b[20], c[30];
+ };
+ 
+ struct inner_t {
+   NI len;
+   struct inner_t_Content* p;
+ };
+ 
+ struct outer_t {
+   struct inner_t bytes;
+   NI position;
+ };
+ 
+ struct localo_t {
+   struct outer_t fo;
+   char stuff[222];
+ };
+ 
+ struct alien_t {
+   NI Field0;
+   struct inner_t Field1;
+ };
+ 
+ static struct inner_t_Content gic;
+ struct inner_t gis;
+ struct outer_t gos;
+ volatile int vgi;
+ 
+ int __attribute__((noipa))
+ get_int (void)
+ {
+   return 0;
+ }
+ 
+ struct inner_t __attribute__((noipa))
+ get_inner_t ()
+ {
+   struct inner_t v = {0, (void *)0};
+   return v;
+ }
+ 
+ void __attribute__((noipa))
+ use_inner_t (struct inner_t v)
+ {
+   gis = v;
+ }
+ 
+ void __attribute__((noipa))
+ init (void)
+ {
+   gos.bytes.len = 15;
+   gos.bytes.p = &gic;
+ }
+ 
+ void __attribute__((noipa))
+ check (void)
+ {
+   if (gis.p != &gic)
+     __builtin_abort ();
+ }
+ 
+ static void foo (int m, struct outer_t *a)
+ {
+   struct inner_t lis;
+ 
+   if (m == 20)
+       ((struct alien_t *) a)->Field1.len = 0;
+   if (m == 21)
+     lis = get_inner_t ();
+   else
+     lis = a->bytes;
+ 
+   vgi = get_int ();
+   if (m < 1)
+     use_inner_t (lis);
+   if (get_int ())
+     vgi = ((struct alien_t *) a)->Field1.len;
+ 
+ }
+ 
+ void bar (struct outer_t pos)
+ {
+   struct localo_t los;
+   los.fo = pos;
+   los.fo.bytes.len = get_int ();
+   foo (get_int (), &los.fo);
+   gos = los.fo;
+ }
+ 
+ int main (int argc, char **argv)
+ {
+   init ();
+   for (int i = 0; i <= get_int (); i++)
+     bar (gos);
+   check ();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.dg/vect/vect-pr124037.c gcc-16-20260419/gcc/testsuite/gcc.dg/vect/vect-pr124037.c
*** gcc-16-20260412/gcc/testsuite/gcc.dg/vect/vect-pr124037.c	Sun Apr 12 22:32:12 2026
--- gcc-16-20260419/gcc/testsuite/gcc.dg/vect/vect-pr124037.c	Sun Apr 19 22:32:14 2026
***************
*** 1,6 ****
  /* PR tree-optimization/124037 */
  /* { dg-require-effective-target mmap } */
! /* { dg-require-effective-target vect_early_break } */
  #include <stdint.h>
  #include <stdio.h>
  #include <string.h>
--- 1,6 ----
  /* PR tree-optimization/124037 */
  /* { dg-require-effective-target mmap } */
! 
  #include <stdint.h>
  #include <stdio.h>
  #include <string.h>
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-1.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-1.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-1.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-Os -march=armv8-a -fdump-tree-crc -std=c99" } */
+ 
+ #include <stdint.h>
+ #include <stddef.h>
+ 
+ uint32_t crc32(const uint8_t *data, size_t length)
+ {
+     uint8_t i;
+     uint32_t crc = 0xffffffff; // Initial value
+     while (length--) {
+         crc ^= (uint32_t)(*data++) << 24;
+ #pragma GCC unroll 0
+         for (i = 0; i < 8; ++i) {
+             if (crc & 0x80000000)
+                 crc = (crc << 1) ^ 0x04C11DB7;
+             else
+                 crc <<= 1;
+         }
+     }
+     return crc;
+ }
+ 
+ /* { dg-final { scan-tree-dump-not {\.CRC } "crc" } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-2.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-2.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-2.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-Os -march=armv8-a+crypto -fdump-tree-crc -std=c99" } */
+ 
+ #include <stdint.h>
+ #include <stddef.h>
+ 
+ uint32_t crc32(const uint8_t *data, size_t length)
+ {
+     uint8_t i;
+     uint32_t crc = 0xffffffff; // Initial value
+     while (length--) {
+         crc ^= (uint32_t)(*data++) << 24;
+ #pragma GCC unroll 0
+         for (i = 0; i < 8; ++i) {
+             if (crc & 0x80000000)
+                 crc = (crc << 1) ^ 0x04C11DB7;
+             else
+                 crc <<= 1;
+         }
+     }
+     return crc;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times {\.CRC } 1 "crc" } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-3.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-3.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-3.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -march=armv8-a -fdump-tree-crc -std=c99" } */
+ 
+ #include <stdint.h>
+ #include <stddef.h>
+ 
+ uint32_t crc32(const uint8_t *data, size_t length)
+ {
+     uint8_t i;
+     uint32_t crc = 0xffffffff; // Initial value
+     while (length--) {
+         crc ^= (uint32_t)(*data++) << 24;
+ #pragma GCC unroll 0
+         for (i = 0; i < 8; ++i) {
+             if (crc & 0x80000000)
+                 crc = (crc << 1) ^ 0x04C11DB7;
+             else
+                 crc <<= 1;
+         }
+     }
+     return crc;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times {\.CRC } 1 "crc" } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-4.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-4.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/crc-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/crc-4.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -march=armv8-a+crypto -fdump-tree-crc -std=c99" } */
+ 
+ #include <stdint.h>
+ #include <stddef.h>
+ 
+ uint32_t crc32(const uint8_t *data, size_t length)
+ {
+     uint8_t i;
+     uint32_t crc = 0xffffffff; // Initial value
+     while (length--) {
+         crc ^= (uint32_t)(*data++) << 24;
+ #pragma GCC unroll 0
+         for (i = 0; i < 8; ++i) {
+             if (crc & 0x80000000)
+                 crc = (crc << 1) ^ 0x04C11DB7;
+             else
+                 crc <<= 1;
+         }
+     }
+     return crc;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times {\.CRC } 1 "crc" } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-1.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-1.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-1.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mnarrow-gp-writes -fdump-rtl-narrow_gp_writes" } */
+ /*{ dg-final { scan-assembler-times "\\tadd\\tw\[0-9\]+, w\[0-9\]+, 3" 1 } } */
+ /* { dg-final { scan-rtl-dump-times "Successfully narrowed insn" 1 "narrow_gp_writes" } } */
+ 
+ long
+ test_single_set (long a)
+ {
+   return (a & 0xFF) + 3;
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-2.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-2.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-2.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mnarrow-gp-writes -fdump-rtl-narrow_gp_writes" } */
+ /* { dg-final { scan-assembler "\\tadds\\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" } } */
+ /* { dg-final { scan-rtl-dump-times "Successfully narrowed insn" 1 "narrow_gp_writes" } } */
+ 
+ long z;
+ 
+ int
+ test_parallel_set (long x, long y)
+ {
+   long a = x & 0x7FFF;
+   long b = y & 0x7FFF;
+ 
+   long result = a + b;
+   if (result == 0)
+     return 1;
+ 
+   z = result;
+   return 0;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-3.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-3.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-3.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mnarrow-gp-writes -fdump-rtl-narrow_gp_writes" } */
+ /* { dg-final { scan-assembler-not "\\tand\\tx\[0-9\]+, x\[0-9\]+, 4294967295" } } */
+ /* { dg-final { scan-assembler "\\tuxtw\\tx\[0-9\]+, w\[0-9\]+" } } */
+ /* { dg-final { scan-rtl-dump-times "Successfully narrowed insn" 1 "narrow_gp_writes" } } */
+ 
+ unsigned long global_val;
+ 
+ void
+ test_force_zext (unsigned long x)
+ {
+   volatile unsigned long y = x;
+   x = y & 0xFFFFFFFF;
+   global_val = x;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-4.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-4.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-4.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mnarrow-gp-writes -fdump-rtl-narrow_gp_writes" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
+ /* { dg-final { scan-rtl-dump-times "Successfully narrowed insn" 2 "narrow_gp_writes" } } */
+ 
+ /*
+ ** test_phi1:
+ **	...
+ **	csel	w2, w2, w1, eq
+ **	add	w0, w2, 1
+ **	...
+ */
+ unsigned long
+ test_phi1 (int cond, unsigned long a, unsigned long b)
+ {
+   unsigned long x;
+   if (cond)
+     x = a & 0xFF;
+   else
+     x = b & 0xFFFF;
+   
+   return x + 1;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-5.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-5.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-5.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mnarrow-gp-writes -fdump-rtl-narrow_gp_writes" } */
+ /* { dg-final { scan-assembler-not "\\tadd\\tw\[0-9\]+, w\[0-9\]+, 1" } } */
+ /* { dg-final { scan-rtl-dump-not "Successfully narrowed insn" "narrow_gp_writes" } } */
+ 
+ unsigned long
+ test_phi2 (int cond, unsigned long x)
+ {
+   if (cond)
+     x = 0xFF;
+   return x + 1;
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-6.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-6.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-6.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mnarrow-gp-writes" } */
+ /* { dg-final { scan-assembler-times "\\tadd\\tw\[0-9\]+, w\[0-9\]+, 3" 1 } } */
+ 
+ unsigned long
+ test_phi3 (int a, int b, unsigned long val)
+ {
+   unsigned long x;
+   
+   if (a) {
+     if (b) {
+       x = val & 0xFF;
+     } else {
+       x = val & 0xFF;
+     }
+   } else {
+     x = val & 0xFF;
+   }
+   
+   return x + 3;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-7.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-7.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-7.c	Sun Apr 19 22:32:14 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mnarrow-gp-writes -fdump-rtl-narrow_gp_writes" } */
+ /* { dg-final { scan-assembler-not "\\tadd\\tw\[0-9\]+, w\[0-9\]+, 1" } } */
+ /* { dg-final { scan-assembler "\\tadd\\tx\[0-9\]+, x\[0-9\]+, 1" } } */
+ /* { dg-final { scan-rtl-dump-not "Successfully narrowed insn" "narrow_gp_writes" } } */
+ 
+ unsigned long
+ test_no_narrow (unsigned long x)
+ {
+   x = x & (1UL << 32);
+   return x + 1;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/pr123238.c gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/pr123238.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/pr123238.c	Sun Apr 12 22:32:12 2026
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/pr123238.c	Sun Apr 19 22:32:14 2026
*************** void bar(char c[])
*** 13,16 ****
          c[i] = c[i] == 'a' ? 'c' : 'e';
  }
  
! /* { dg-final { scan-assembler-not "not" } } */
--- 13,17 ----
          c[i] = c[i] == 'a' ? 'c' : 'e';
  }
  
! /* { dg-final { scan-assembler-not "\tnot\t" } } */
! /* { dg-final { scan-assembler-times "\tcmeq\t" 2 } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
*** gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h	Sun Apr 12 22:32:12 2026
--- gcc-16-20260419/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h	Sun Apr 19 22:32:15 2026
***************
*** 1,6 ****
--- 1,13 ----
  #ifndef TEST_SVE_ACLE_H
  #define TEST_SVE_ACLE_H 1
  
+ /* When compiling for e.g. C++98, we won't get the INt*_MIN macros that some
+    tests want without defining this macro.  */
+ 
+ #ifndef __STDC_LIMIT_MACROS
+ # define __STDC_LIMIT_MACROS 1
+ #endif
+ 
  #include <arm_neon_sve_bridge.h>
  
  #if defined (TEST_OVERLOADS)
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/arm/multilib.exp gcc-16-20260419/gcc/testsuite/gcc.target/arm/multilib.exp
*** gcc-16-20260412/gcc/testsuite/gcc.target/arm/multilib.exp	Sun Apr 12 22:32:12 2026
--- gcc-16-20260419/gcc/testsuite/gcc.target/arm/multilib.exp	Sun Apr 19 22:32:15 2026
*************** if {[multilib_config "rmprofile"] } {
*** 526,531 ****
--- 526,532 ----
  	{-mcpu=cortex-m23 -mfpu=fpv5-d16 -mfloat-abi=soft} "thumb/v8-m.base/nofp"
  	{-mcpu=cortex-m33 -mfpu=fpv5-d16 -mfloat-abi=soft} "thumb/v8-m.main/nofp"
  	{-mcpu=cortex-m7+nofp.dp -mfpu=fpv5-d16 -mfloat-abi=soft} "thumb/v7e-m/nofp"
+ 
  	{-mcpu=cortex-m85+nopacbti -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
  	{-mcpu=cortex-m85+nopacbti+nofp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
  	{-mcpu=cortex-m85+nopacbti+nomve -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
*************** if {[multilib_config "rmprofile"] } {
*** 535,540 ****
--- 536,551 ----
  	{-mcpu=cortex-m85+nomve.fp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
  	{-mcpu=cortex-m85+nomve -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
  	{-mcpu=cortex-m85+nodsp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+nopacbti+cdecp0 -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+nopacbti+cdecp1+nofp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+nopacbti+cdecp7+nomve -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+nopacbti+cdecp0+cdecp1+nodsp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+nopacbti+cdecp0+cdecp1+cdecp2+cdecp3+cdecp4+cdecp5+cdecp6+cdecp7+nomve.fp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+cdecp6 -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+cdecp4+nomve.fp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+cdecp5+nomve -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 	{-mcpu=cortex-m85+cdecp2+nodsp -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp"
+ 
  	{-mcpu=cortex-m4 -mfpu=auto -mfloat-abi=hard} "thumb/v7e-m+fp/hard"
  	{-mcpu=cortex-m7 -mfpu=auto -mfloat-abi=hard} "thumb/v7e-m+dp/hard"
  	{-mcpu=cortex-m33 -mfpu=auto -mfloat-abi=hard} "thumb/v8-m.main+fp/hard"
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/apx-pr124892.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/apx-pr124892.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/apx-pr124892.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/apx-pr124892.c	Sun Apr 19 22:32:15 2026
***************
*** 0 ****
--- 1,20 ----
+ /* PR target/124892 */
+ /* { dg-do run { target { apxf && { lzcnt && { ! ia32 } } } } } */
+ /* { dg-options "-O2 -frename-registers" } */
+ 
+ [[gnu::noipa, gnu::target ("apxf"), gnu::target ("lzcnt")]] char
+ foo (unsigned u)
+ {
+   return __builtin_stdc_bit_ceil (u);
+ }
+ 
+ int
+ main ()
+ {
+   if (!__builtin_cpu_supports ("apxf"))
+     return 0;
+   if (!__builtin_cpu_supports ("lzcnt"))
+     return 0;
+   if (foo (7) != 8)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124710-1.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124710-1.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124710-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124710-1.c	Sun Apr 19 22:32:15 2026
***************
*** 0 ****
--- 1,16 ----
+ /* PR target/124710 */
+ /* { dg-do assemble } */
+ /* { dg-options "-O -masm=intel -mavx10.2" } */
+ /* { dg-require-effective-target masm_intel } */
+ /* { dg-require-effective-target avx10_2 } */
+ 
+ #include <immintrin.h>
+ 
+ __m128i v;
+ __m128 w;
+ 
+ void
+ foo()
+ {
+   v = _mm_mask_cvtts_ps_epi64(v, -1, w);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124710-2.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124710-2.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124710-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124710-2.c	Sun Apr 19 22:32:15 2026
***************
*** 0 ****
--- 1,57 ----
+ /* PR target/124710 */
+ /* { dg-do assemble } */
+ /* { dg-options "-O2 -masm=intel -mavx10.2" } */
+ /* { dg-require-effective-target masm_intel } */
+ /* { dg-require-effective-target avx10_2 } */
+ 
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+ typedef double __v2df __attribute__ ((__vector_size__ (16)));
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ 
+ /* vcvttps2qqs 128-bit: source V4SF is half-width of dest V2DI,
+    Intel syntax needs "qword ptr" for memory operand.
+    At -O2 the compiler folds *p into the instruction.  */
+ 
+ __v2di
+ test_vcvttps2qqs128 (__v4sf *p)
+ {
+   return (__v2di) __builtin_ia32_cvttps2qqs128_mask (*p, (__v2di) { 0, 0 },
+ 						     (unsigned char) -1);
+ }
+ 
+ __v2di
+ test_vcvttps2uqqs128 (__v4sf *p)
+ {
+   return (__v2di) __builtin_ia32_cvttps2uqqs128_mask (*p, (__v2di) { 0, 0 },
+ 						      (unsigned char) -1);
+ }
+ 
+ /* vcvttsd2sis: source V2DF extracts scalar double (64-bit),
+    Intel syntax needs "qword ptr" for memory operand.  */
+ 
+ int
+ test_vcvttsd2sis32 (__v2df *p)
+ {
+   return (int) __builtin_ia32_cvttsd2sis32_round (*p, 4);
+ }
+ 
+ unsigned int
+ test_vcvttsd2usis32 (__v2df *p)
+ {
+   return (unsigned int) __builtin_ia32_cvttsd2usis32_round (*p, 4);
+ }
+ 
+ /* vcvttss2sis: source V4SF extracts scalar float (32-bit),
+    Intel syntax needs "dword ptr" for memory operand.  */
+ 
+ int
+ test_vcvttss2sis32 (__v4sf *p)
+ {
+   return (int) __builtin_ia32_cvttss2sis32_round (*p, 4);
+ }
+ 
+ unsigned int
+ test_vcvttss2usis32 (__v4sf *p)
+ {
+   return (unsigned int) __builtin_ia32_cvttss2usis32_round (*p, 4);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124877-1.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124877-1.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124877-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124877-1.c	Sun Apr 19 22:32:15 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-masm=att" } */
+ 
+ void bar(unsigned char x);
+ void foo()
+ {
+   bar(225);
+ }
+ 
+ /* PROMOTE_PROTOTYPES should make us pass 225, not -31, both would
+    be valid according to the ABI.  */
+ /* { dg-final { scan-assembler "movl\[ \t\]+\\\$225, %edi" { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124877-2.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124877-2.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124877-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124877-2.c	Sun Apr 19 22:32:15 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -masm=att" } */
+ 
+ typedef union { unsigned char x; signed char y; }
+ __attribute__((__transparent_union__)) T;
+ void bar(int, T x);
+ void foo(signed char x)
+ {
+   bar(0, x);
+ }
+ 
+ /* PROMOTE_PROTOTYPES should make us pass x as int, but zero extended
+    according to the type of the first union member.  */
+ /* { dg-final { scan-assembler "movzbl" } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124877-3.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124877-3.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124877-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr124877-3.c	Sun Apr 19 22:32:15 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -masm=att" } */
+ 
+ typedef union { unsigned char x; signed char y; }
+ __attribute__((__transparent_union__)) T;
+ void bar(int, T x);
+ void foo()
+ {
+   bar(0, (T) { 42 });
+   bar(1, (T) { -42 });
+ }
+ 
+ /* PROMOTE_PROTOTYPES should make us pass 42 and 214, not -42, both would
+    be valid according to the ABI.  */
+ /* { dg-final { scan-assembler "movl\[ \t\]+\\\$42, %esi" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "movl\[ \t\]+\\\$214, %esi" { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr90178.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr90178.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr90178.c	Sun Apr 12 22:32:13 2026
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/pr90178.c	Sun Apr 19 22:32:16 2026
*************** find_ptr (int* mem, int sz, int val)
*** 11,14 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler-times "xorl\[\\t \]*\\\%eax,\[\\t \]*%eax" 1 } } */
--- 11,14 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler-times "ret" 2 } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c	Sun Apr 12 22:32:13 2026
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c	Sun Apr 19 22:32:16 2026
*************** foo (void)
*** 7,12 ****
--- 7,28 ----
  }
  
  /* { dg-final { scan-assembler "vzeroall" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm16, %zmm16, %zmm16" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm17, %zmm17, %zmm17" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm18, %zmm18, %zmm18" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm19, %zmm19, %zmm19" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm20, %zmm20, %zmm20" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm21, %zmm21, %zmm21" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm22, %zmm22, %zmm22" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm23, %zmm23, %zmm23" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm24, %zmm24, %zmm24" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm25, %zmm25, %zmm25" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm26, %zmm26, %zmm26" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm27, %zmm27, %zmm27" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm28, %zmm28, %zmm28" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm29, %zmm29, %zmm29" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm30, %zmm30, %zmm30" { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm31, %zmm31, %zmm31" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler-times "fldz" 8 } } */
  /* { dg-final { scan-assembler-times "fstp\[ \t\]+%st\\(0\\)" 8 } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/i386/zero-scratch-regs-33.c gcc-16-20260419/gcc/testsuite/gcc.target/i386/zero-scratch-regs-33.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/i386/zero-scratch-regs-33.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/i386/zero-scratch-regs-33.c	Sun Apr 19 22:32:16 2026
***************
*** 0 ****
--- 1,60 ----
+ /* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */
+ /* { dg-options "-O2 -fzero-call-used-regs=all -march=corei7 -mavx512f -mapxf" } */
+ 
+ void
+ foo (void)
+ {
+ }
+ 
+ /* { dg-final { scan-assembler "vzeroall" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm16, %zmm16, %zmm16" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm17, %zmm17, %zmm17" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm18, %zmm18, %zmm18" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm19, %zmm19, %zmm19" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm20, %zmm20, %zmm20" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm21, %zmm21, %zmm21" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm22, %zmm22, %zmm22" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm23, %zmm23, %zmm23" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm24, %zmm24, %zmm24" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm25, %zmm25, %zmm25" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm26, %zmm26, %zmm26" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm27, %zmm27, %zmm27" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm28, %zmm28, %zmm28" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm29, %zmm29, %zmm29" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm30, %zmm30, %zmm30" } } */
+ /* { dg-final { scan-assembler "vpxord\[ \t\]+%zmm31, %zmm31, %zmm31" } } */
+ /* { dg-final { scan-assembler-times "fldz" 8 } } */
+ /* { dg-final { scan-assembler-times "fstp\[ \t\]+%st\\(0\\)" 8 } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k0, %k0, %k0" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k1, %k1, %k1" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k2, %k2, %k2" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k3, %k3, %k3" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k4, %k4, %k4" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k5, %k5, %k5" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k6, %k6, %k6" } } */
+ /* { dg-final { scan-assembler "kxorw\[ \t\]+%k7, %k7, %k7" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r16d, %r16d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r17d, %r17d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r18d, %r18d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r19d, %r19d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r20d, %r20d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r21d, %r21d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r22d, %r22d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r23d, %r23d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r24d, %r24d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r25d, %r25d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r26d, %r26d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r27d, %r27d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r28d, %r28d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r29d, %r29d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r30d, %r30d" } } */
+ /* { dg-final { scan-assembler "xorl\[ \t\]+%r31d, %r31d" } } */
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/microblaze/isa/pr103383.c gcc-16-20260419/gcc/testsuite/gcc.target/microblaze/isa/pr103383.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/microblaze/isa/pr103383.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/microblaze/isa/pr103383.c	Sun Apr 19 22:32:16 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mcpu=v10.0 -mxl-barrel-shift -S" } */
+  
+ unsigned short t = 0x1234;
+ 
+ extern unsigned short int g();
+ 
+ int f()
+ {
+   unsigned short s = t;
+ 
+ /* { dg-final { scan-assembler-not "brlid\tr(\[0-9]\|\[1-2]\[0-9]\|3\[0-1]),g\n\[ \t\n\]*swap" } } */
+   if (__builtin_bswap16(s) != g()) {
+ 	  return -1;
+   }
+ 
+   return 0;
+ }
+ 
+ 
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c gcc-16-20260419/gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c	Sun Apr 12 22:32:13 2026
--- gcc-16-20260419/gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c	Sun Apr 19 22:32:16 2026
***************
*** 2,8 ****
  /* { dg-options {-march-map=sm_50 -mptx=_} } */
  /* { dg-additional-options -save-temps } */
  /* { dg-final { scan-assembler-times {(?n)^	\.version	6\.3$} 1 } } */
! /* { dg-final { scan-assembler-times {(?n)^	\.target	sm_37$} 1 } } */
  
  #if __PTX_ISA_VERSION_MAJOR__ != 6
  #error wrong value for __PTX_ISA_VERSION_MAJOR__
--- 2,8 ----
  /* { dg-options {-march-map=sm_50 -mptx=_} } */
  /* { dg-additional-options -save-temps } */
  /* { dg-final { scan-assembler-times {(?n)^	\.version	6\.3$} 1 } } */
! /* { dg-final { scan-assembler-times {(?n)^	\.target	sm_50$} 1 } } */
  
  #if __PTX_ISA_VERSION_MAJOR__ != 6
  #error wrong value for __PTX_ISA_VERSION_MAJOR__
***************
*** 12,18 ****
  #error wrong value for __PTX_ISA_VERSION_MINOR__
  #endif
  
! #if __PTX_SM__ != 370
  #error wrong value for __PTX_SM__
  #endif
  
--- 12,18 ----
  #error wrong value for __PTX_ISA_VERSION_MINOR__
  #endif
  
! #if __PTX_SM__ != 500
  #error wrong value for __PTX_SM__
  #endif
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/nvptx/march=sm_50.c gcc-16-20260419/gcc/testsuite/gcc.target/nvptx/march=sm_50.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/nvptx/march=sm_50.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/nvptx/march=sm_50.c	Sun Apr 19 22:32:16 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do assemble } */
+ /* { dg-options {-march=sm_50 -mptx=_} } */
+ /* { dg-additional-options -save-temps } */
+ /* { dg-final { scan-assembler-times {(?n)^	\.version	6\.3$} 1 } } */
+ /* { dg-final { scan-assembler-times {(?n)^	\.target	sm_50$} 1 } } */
+ 
+ #if __PTX_ISA_VERSION_MAJOR__ != 6
+ #error wrong value for __PTX_ISA_VERSION_MAJOR__
+ #endif
+ 
+ #if __PTX_ISA_VERSION_MINOR__ != 3
+ #error wrong value for __PTX_ISA_VERSION_MINOR__
+ #endif
+ 
+ #if __PTX_SM__ != 500
+ #error wrong value for __PTX_SM__
+ #endif
+ 
+ int dummy;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/nvptx/mptx=4.0.c gcc-16-20260419/gcc/testsuite/gcc.target/nvptx/mptx=4.0.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/nvptx/mptx=4.0.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gcc.target/nvptx/mptx=4.0.c	Sun Apr 19 22:32:16 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do assemble } */
+ /* { dg-options {-march=sm_30 -mptx=4.0} } */
+ /* { dg-additional-options -save-temps } */
+ /* { dg-final { scan-assembler-times {(?n)^	\.version	4\.0$} 1 } } */
+ /* { dg-final { scan-assembler-times {(?n)^	\.target	sm_30$} 1 } } */
+ 
+ #if __PTX_ISA_VERSION_MAJOR__ != 4
+ #error wrong value for __PTX_ISA_VERSION_MAJOR__
+ #endif
+ 
+ #if __PTX_ISA_VERSION_MINOR__ != 0
+ #error wrong value for __PTX_ISA_VERSION_MINOR__
+ #endif
+ 
+ #if __PTX_SM__ != 300
+ #error wrong value for __PTX_SM__
+ #endif
+ 
+ int dummy;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gcc.target/powerpc/acmp-tst.c gcc-16-20260419/gcc/testsuite/gcc.target/powerpc/acmp-tst.c
*** gcc-16-20260412/gcc/testsuite/gcc.target/powerpc/acmp-tst.c	Sun Apr 12 22:32:13 2026
--- gcc-16-20260419/gcc/testsuite/gcc.target/powerpc/acmp-tst.c	Thu Jan  1 00:00:00 1970
***************
*** 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 } } */
--- 0 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.dg/attr_no_split_stack.d gcc-16-20260419/gcc/testsuite/gdc.dg/attr_no_split_stack.d
*** gcc-16-20260412/gcc/testsuite/gdc.dg/attr_no_split_stack.d	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gdc.dg/attr_no_split_stack.d	Sun Apr 19 22:32:16 2026
***************
*** 0 ****
--- 1,21 ----
+ // { dg-do compile }
+ // { dg-require-effective-target split_stack }
+ // { dg-options "-fsplit-stack -fno-moduleinfo" }
+ 
+ import gcc.attributes;
+ 
+ void use(ref int[100]);
+ 
+ void split()
+ {
+     int[100] arr;
+     use(arr);
+ }
+ 
+ @attribute("no_split_stack")
+ void nosplit()
+ {
+     int[100] arr;
+     use(arr);
+ }
+ // { dg-final { scan-assembler-times "__morestack" 1 } }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.dg/pr124922.d gcc-16-20260419/gcc/testsuite/gdc.dg/pr124922.d
*** gcc-16-20260412/gcc/testsuite/gdc.dg/pr124922.d	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gdc.dg/pr124922.d	Sun Apr 19 22:32:16 2026
***************
*** 0 ****
--- 1,11 ----
+ // { dg-do compile }
+ // { dg-additional-options "-fno-assert -fdump-tree-original" }
+ module object;
+ alias noreturn = typeof(*null);
+ void main()
+ {
+     void function(noreturn) fun;
+     noreturn bar;
+     fun(bar);
+ }
+ // { dg-final { scan-tree-dump-times "__builtin_trap" 1 "original" } }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.test/compilable/test21839.d gcc-16-20260419/gcc/testsuite/gdc.test/compilable/test21839.d
*** gcc-16-20260412/gcc/testsuite/gdc.test/compilable/test21839.d	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gdc.test/compilable/test21839.d	Sun Apr 19 22:32:16 2026
***************
*** 0 ****
--- 1,10 ----
+ // https://github.com/dlang/dmd/issues/21839
+ // ICE with void[N].init passed to template function
+ 
+ void tf(U)(U) {}
+ 
+ void test()
+ {
+     tf(void[16].init);
+     tf(void[8].init);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.test/compilable/test8717.d gcc-16-20260419/gcc/testsuite/gdc.test/compilable/test8717.d
*** gcc-16-20260412/gcc/testsuite/gdc.test/compilable/test8717.d	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gdc.test/compilable/test8717.d	Sun Apr 19 22:32:16 2026
*************** static if(SPT.init.sii != 1) { static as
*** 60,63 ****
  static if(SPT.sf() != 1) { static assert(0); }
  static if(SPT.init.f() != 1) { static assert(0); }
  
! void main() { }
--- 60,65 ----
  static if(SPT.sf() != 1) { static assert(0); }
  static if(SPT.init.f() != 1) { static assert(0); }
  
! // https://github.com/dlang/dmd/issues/22699
! struct S{ int[8] e; }
! static assert(S().e[0..4] == S.init.e[0..4]);
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/diag10783.d gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/diag10783.d
*** gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/diag10783.d	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/diag10783.d	Sun Apr 19 22:32:16 2026
***************
*** 1,9 ****
  /*
  TEST_OUTPUT:
  ---
! fail_compilation/diag10783.d(15): Error: no property `type` for `event` of type `diag10783.Event`
! fail_compilation/diag10783.d(10):        struct `Event` defined here
! fail_compilation/diag10783.d(15): Error: undefined identifier `En`
  ---
  */
  
--- 1,8 ----
  /*
  TEST_OUTPUT:
  ---
! fail_compilation/diag10783.d(14): Error: no property `type` for `event` of type `diag10783.Event`
! fail_compilation/diag10783.d(9):        struct `Event` defined here
  ---
  */
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/diag9358.d gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/diag9358.d
*** gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/diag9358.d	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/diag9358.d	Sun Apr 19 22:32:16 2026
***************
*** 1,10 ****
  /*
  TEST_OUTPUT:
  ---
! fail_compilation/diag9358.d(13): Error: `x` must be of integral or string type, it is a `double`
! fail_compilation/diag9358.d(15): Error: `case` expression must be a compile-time `string` or an integral constant, not `1.1`
! fail_compilation/diag9358.d(16): Error: `case` expression must be a compile-time `string` or an integral constant, not `2.1`
! fail_compilation/diag9358.d(26): Error: `case` expression must be a compile-time `string` or an integral constant, not `z`
  ---
  */
  void main()
--- 1,8 ----
  /*
  TEST_OUTPUT:
  ---
! fail_compilation/diag9358.d(11): Error: `x` must be of integral or string type, it is a `double`
! fail_compilation/diag9358.d(24): Error: `case` expression must be a compile-time `string` or an integral constant, not `z`
  ---
  */
  void main()
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/fail22925.d gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/fail22925.d
*** gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/fail22925.d	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/fail22925.d	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,40 ----
+ /*
+ TEST_OUTPUT:
+ ---
+ fail_compilation/fail22925.d(15): Error: integer constant expression expected instead of `"s"`
+ fail_compilation/fail22925.d(15): Error: integer constant expression expected instead of `"z"`
+ fail_compilation/fail22925.d(23): Error: `s` must be of integral or string type, it is a `real`
+ fail_compilation/fail22925.d(35): Error: cannot implicitly convert expression `2.8` of type `double` to `int`
+ fail_compilation/fail22925.d(35): Error: cannot implicitly convert expression `4.2` of type `double` to `int`
+ ---
+ */
+ void test1(string s)
+ {
+     switch (s)
+     {
+         case "s": .. case "z":
+             break;
+         default:
+             break;
+     }
+ }
+ void test2(real s)
+ {
+     switch (s)
+     {
+         case 1.0: .. case 2.7:
+             break;
+         default:
+             break;
+     }
+ }
+ void test3(int s)
+ {
+     switch (s)
+     {
+         case 2.8: .. case 4.2:
+             break;
+         default:
+             break;
+     }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/staticarray.d gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/staticarray.d
*** gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/staticarray.d	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/staticarray.d	Sun Apr 19 22:32:17 2026
***************
*** 1,12 ****
  /*
  TEST_OUTPUT:
  ---
! fail_compilation/staticarray.d(10): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(11): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(12): Error: cannot infer static array length from `$`, provide an initializer
  ---
  */
  
  int[$] arr1;
  int[$] arr2 = void;
  int[$][1] arr3 = 1;
--- 1,67 ----
  /*
  TEST_OUTPUT:
  ---
! fail_compilation/staticarray.d(24): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(25): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(26): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(29): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(27): Error: struct `staticarray.ForwardRef1` circular or forward reference
! fail_compilation/staticarray.d(38): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(36): Error: struct `staticarray.ForwardRef3` circular or forward reference
! fail_compilation/staticarray.d(43): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(41): Error: struct `staticarray.ForwardRef4` circular or forward reference
! fail_compilation/staticarray.d(50): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(47): Error: struct `staticarray.ForwardRef5` circular or forward reference
! fail_compilation/staticarray.d(55): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(53): Error: struct `staticarray.ForwardRef6` circular or forward reference
! fail_compilation/staticarray.d(60): Error: cannot infer static array length from `$`, provide an initializer
! fail_compilation/staticarray.d(58): Error: struct `staticarray.ForwardRef7` circular or forward reference
! fail_compilation/staticarray.d(66): Error: struct `staticarray.ForwardRef8` cannot have field `arr` with static array of same struct type
! fail_compilation/staticarray.d(33): Error: variable `staticarray.ForwardRef2.arr` recursive initialization of field
  ---
  */
  
  int[$] arr1;
  int[$] arr2 = void;
  int[$][1] arr3 = 1;
+ struct ForwardRef1
+ {
+     ForwardRef1[$] arr = new ForwardRef1();
+ }
+ struct ForwardRef2
+ {
+     ForwardRef2*[$] arr = [new ForwardRef2()];
+ }
+ 
+ struct ForwardRef3
+ {
+     ForwardRef3[$] arr = ForwardRef3.init;
+ }
+ 
+ struct ForwardRef4
+ {
+     ForwardRef4[$] arr = make();
+     static ForwardRef4 make() { return ForwardRef4.init; }
+ }
+ 
+ struct ForwardRef5
+ {
+     enum bool flag = true;
+     ForwardRef5[$] arr = flag ? ForwardRef5.init : ForwardRef5.init;
+ }
+ 
+ struct ForwardRef6
+ {
+     ForwardRef6[$] arr = (0, ForwardRef6.init);
+ }
+ 
+ struct ForwardRef7
+ {
+     ForwardRef7[$] arr = make();
+     static ForwardRef7[] make() { return [ForwardRef7.init]; }
+ }
+ 
+ struct ForwardRef8
+ {
+     ForwardRef8[$][$] arr = [[ForwardRef8.init]];
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
*** gcc-16-20260412/gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d	Sun Apr 19 22:32:17 2026
***************
*** 2,10 ****
  https://issues.dlang.org/show_bug.cgi?id=22514
  TEST_OUTPUT:
  ---
! fail_compilation/test_switch_error.d(13): Error: undefined identifier `doesNotExist`
! fail_compilation/test_switch_error.d(16): Error: undefined identifier `alsoDoesNotExits`
! fail_compilation/test_switch_error.d(19): Error: duplicate `case 2` in `switch` statement
  ---
  ++/
  
--- 2,8 ----
  https://issues.dlang.org/show_bug.cgi?id=22514
  TEST_OUTPUT:
  ---
! fail_compilation/test_switch_error.d(11): Error: undefined identifier `doesNotExist`
  ---
  ++/
  
*************** void test5(int i)
*** 104,113 ****
  TEST_OUTPUT:
  ---
  fail_compilation/test_switch_error.d(513): Error: undefined identifier `undefinedFunc`
- fail_compilation/test_switch_error.d(517): Error: `case` expression must be a compile-time `string` or an integral constant, not `Strukt(1)`
- fail_compilation/test_switch_error.d(518): Error: `case` variables have to be `const` or `immutable`
- fail_compilation/test_switch_error.d(518): Error: `case` variables not allowed in `final switch` statements
- fail_compilation/test_switch_error.d(519): Error: `case` variables not allowed in `final switch` statements
  fail_compilation/test_switch_error.d(522): Error: undefined identifier `undefinedFunc2`
  ---
  ++/
--- 102,107 ----
*************** void errorsWithErrors(int param, immutab
*** 144,151 ****
  TEST_OUTPUT:
  ---
  fail_compilation/test_switch_error.d(622): Error: undefined identifier `undefinedFunc`
- fail_compilation/test_switch_error.d(624): Error: `case` expression must be a compile-time `string` or an integral constant, not `SubtypeOfInt(2)`
- fail_compilation/test_switch_error.d(625): Error: `case` expression must be a compile-time `string` or an integral constant, not `SubtypeOfIntMethod()`
  ---
  ++/
  #line 600
--- 138,143 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/defined_assignment_13.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/defined_assignment_13.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/defined_assignment_13.f90	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/defined_assignment_13.f90	Sun Apr 19 22:32:17 2026
*************** contains
*** 119,124 ****
--- 119,130 ----
      x%i = y%i + 42
    end subroutine sub2
  
+   impure elemental function f1 (x)
+     type(t1), intent(in) :: x
+     type(t1) :: f1
+     f1%i = x%i + 99
+   end function f1
+ 
    subroutine extra_tests ()
      integer :: j
      type(t1) :: p1(4), q1(4) = [(t1(j),j=1,4)]
*************** contains
*** 127,132 ****
--- 133,139 ----
      integer  :: iperm(2) = [1,2]
      integer  :: expect1(4) = [25,24,0,0]
      integer  :: expect2(4) = [44,43,0,0]
+     integer  :: expect3(4) = [123,124,3,4]
  
      !-----------------------------------
      ! (1) l.h.s. not depending on r.h.s.
*************** contains
*** 259,281 ****
      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
  
--- 266,295 ----
      call check (p2%i, expect2, 64)
  
      ! l.h.s. vector indices, r.h.s. array section
!     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, 72)
! 
!     p1%i       = q1%i
!     call sub1  (p1([2,1]), (p1(1:2)))
!     call check (p1%i, expect1, 73)
! 
!     p2%i       = q2%i
!     call sub2  (p2([2,1]), (p2(1:2)))
!     call check (p2%i, expect2, 74)
! 
!     ! l.h.s. vector indices, r.h.s. array section as a function arg.
!     p1%i = q1%i
!     p1([2,1]) = f1 (p1([2,1]))
!     call check (p1%i, expect3, 75)
! 
!     p1%i = q1%i
!     call sub1(p1([2,1]), f1 (p1([2,1])))
!     call check (p1%i, expect3, 76)
  
    end subroutine extra_tests
  
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90	Thu Jan  1 00:00:00 1970
***************
*** 1,22 ****
- ! { dg-do compile }
- ! { dg-additional-options "-fopenmp" }
- 
- module m_108382_a
-   implicit none
-   integer :: x, y
- 
- !$acc declare copyin(x, &
- !$acc   y)
- !$omp declare target(x, &
- !$omp   y)
- end module m_108382_a
- 
- module m_108382_b
-   implicit none
-   integer :: x, y
- 
- !$omp declare target(x, &
- !$omp   y)
- !$acc declare copyin(x, &
- !$acc   y)
- end module m_108382_b
--- 0 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/omp-fixed.f gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/omp-fixed.f
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/omp-fixed.f	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/omp-fixed.f	Thu Jan  1 00:00:00 1970
***************
*** 1,40 ****
- ! { dg-do compile }
- ! { dg-additional-options "-fopenmp" }
-       SUBROUTINE ICHI
-       INTEGER :: ARGC
-       ARGC = COMMAND_ARGUMENT_COUNT ()
- 
- !$OMP PARALLEL
- !$ACC PARALLEL                                                          &
- !$ACC& COPYIN(ARGC)  ! { dg-error "The !.ACC PARALLEL directive cannot be specified within a !.OMP PARALLEL region" }
-       IF (ARGC .NE. 0) THEN
-          STOP 1
-       END IF
- !$ACC END PARALLEL
- !$OMP END PARALLEL
- 
-       END SUBROUTINE ICHI
- 
- 
-       SUBROUTINE NI
-       IMPLICIT NONE
-       INTEGER :: I
- 
- !$ACC PARALLEL                                                          &
- !$OMP& DO ! { dg-error "Wrong OpenACC continuation" }
-       DO I = 1, 10
-       ENDDO
- !$ACC END PARALLEL
- 
- !$OMP PARALLEL                                                          &
- !$ACC& KERNELS LOOP ! { dg-error "Wrong OpenMP continuation" }
-       DO I = 1, 10
-       ENDDO
- !$OMP END PARALLEL
- 
- !$OMP PARALLEL                                                          &
- !$ACC& LOOP ! { dg-error "Wrong OpenMP continuation" }
-       DO I = 1, 10
-       ENDDO
- !$OMP END PARALLEL
-       END SUBROUTINE NI
--- 0 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/omp.f95 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/omp.f95
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/omp.f95	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/omp.f95	Thu Jan  1 00:00:00 1970
***************
*** 1,86 ****
- ! { dg-do compile } 
- ! { dg-additional-options "-fopenmp" } 
- 
- module test
- contains
-   subroutine ichi
-     implicit none
-     integer :: i
-     !$acc parallel
-     !$omp do ! { dg-error "cannot be specified" }
-     do i = 1,5
-     enddo
-     !$acc end parallel
-   end subroutine ichi
- 
-   subroutine ni
-     implicit none
-     integer :: i
-     !$omp parallel
-     !$acc loop ! { dg-error "cannot be specified" }
-     do i = 1,5
-     enddo
-     !$omp end parallel
-   end subroutine ni
- 
-   subroutine san
-     implicit none
-     integer :: i
-     !$omp do
-     !$acc loop ! { dg-error "Unexpected" }
-     do i = 1,5
-     enddo
-    end subroutine san
- 
-    subroutine yon
-      implicit none
-      integer :: i
-      !$acc loop
-      !$omp do ! { dg-error "Expected DO loop" }
-      do i = 1,5
-      enddo
-    end subroutine yon
- 
-    subroutine go
-      implicit none
-      integer :: i, j
- 
-      !$omp parallel
-      do i = 1,5
-        !$acc kernels ! { dg-error "cannot be specified" }
-        do j = 1,5
-        enddo
-        !$acc end kernels
-      enddo
-      !$omp end parallel
-    end subroutine go
- 
-    subroutine roku
-      implicit none
- 
-      !$acc data
-      !$omp parallel ! { dg-error "cannot be specified" }
-      !$omp end parallel
-      !$acc end data
-    end subroutine roku
- 
-    subroutine nana
-      !$acc parallel &
-      !$omp do ! { dg-error "Wrong OpenACC continuation" }
-      do i = 1, 5 ! { dg-error "The !.OMP DO directive cannot be specified within a !.ACC PARALLEL region" "" { target *-*-* } .-1 }
-      end do
-      !$acc end parallel
- 
-      !$omp parallel &
-      !$acc kernels loop ! { dg-error "Wrong OpenMP continuation" }
-      do i = 1, 5 ! { dg-error "The !.ACC KERNELS LOOP directive cannot be specified within a !.OMP PARALLEL region" "" { target *-*-* } .-1 }
-      end do
-      !$omp end parallel
- 
-      !$omp parallel &
-      !$acc loop ! { dg-error "Wrong OpenMP continuation" }
-      do i = 1, 5 ! { dg-error "The !.ACC LOOP directive cannot be specified within a !.OMP PARALLEL region" "" { target *-*-* } .-1 }
-      end do
-      !$omp end parallel
-    end subroutine nana
- end module test
--- 0 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/pr93329.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/pr93329.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/pr93329.f90	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/pr93329.f90	Thu Jan  1 00:00:00 1970
***************
*** 1,223 ****
- ! PR fortran/93329
- ! { dg-do compile { target fopenmp } }
- ! { dg-additional-options "-fopenmp -Wno-deprecated-openmp" }
- 
-   integer :: x, y, z
-   integer :: a(32)
- !$acc kernels copyout(x)
- !$omp target map(from:x)	! { dg-error "OMP TARGET directive cannot be specified within" }
-   x = 5
- !$omp end target
- !$acc end kernels
-   print *, x
- !$acc kernels
- !$omp atomic			! { dg-error "OMP ATOMIC directive cannot be specified within" }
-   x = x + 1
- !$omp end atomic
- !$acc end kernels
- !$acc kernels
- !$omp barrier			! { dg-error "OMP BARRIER directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp cancel parallel		! { dg-error "OMP CANCEL directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp cancellation point parallel	! { dg-error "OMP CANCELLATION POINT directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp flush			! { dg-error "OMP FLUSH directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp distribute		! { dg-error "OMP DISTRIBUTE directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp distribute parallel do	! { dg-error "OMP DISTRIBUTE PARALLEL DO directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp distribute parallel do simd	! { dg-error "OMP DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp distribute simd		! { dg-error "OMP DISTRIBUTE SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp do simd			! { dg-error "OMP DO SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp simd			! { dg-error "OMP SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target data map(from: x)	! { dg-error "OMP TARGET DATA directive cannot be specified within" }
- !$omp end target data
- !$acc end kernels
- !$acc kernels
- !$omp target enter data map(to: x)	! { dg-error "OMP TARGET ENTER DATA directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp target exit data map(from: x)	! { dg-error "OMP TARGET EXIT DATA directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp target parallel		! { dg-error "OMP TARGET PARALLEL directive cannot be specified within" }
- !$omp end target parallel
- !$acc end kernels
- !$acc kernels
- !$omp target parallel do	! { dg-error "OMP TARGET PARALLEL DO directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target parallel do simd	! { dg-error "OMP TARGET PARALLEL DO SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target simd		! { dg-error "OMP TARGET SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target teams		! { dg-error "OMP TARGET TEAMS directive cannot be specified within" }
- !$omp end target teams
- !$acc end kernels
- !$acc kernels
- !$omp target teams distribute	! { dg-error "OMP TARGET TEAMS DISTRIBUTE directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target teams distribute parallel do	! { dg-error "OMP TARGET TEAMS DISTRIBUTE PARALLEL DO directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target teams distribute parallel do simd	! { dg-error "OMP TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target teams distribute simd	! { dg-error "OMP TARGET TEAMS DISTRIBUTE SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp target update to(x)	! { dg-error "OMP TARGET UPDATE directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp taskgroup			! { dg-error "OMP TASKGROUP directive cannot be specified within" }
- !$omp end taskgroup
- !$acc end kernels
- !$acc kernels
- !$omp taskloop			! { dg-error "OMP TASKLOOP directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp taskloop simd		! { dg-error "OMP TASKLOOP SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp taskwait			! { dg-error "OMP TASKWAIT directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp taskyield			! { dg-error "OMP TASKYIELD directive cannot be specified within" }
- !$acc end kernels
- !$acc kernels
- !$omp teams			! { dg-error "OMP TEAMS directive cannot be specified within" }
- !$omp end teams
- !$acc end kernels
- !$acc kernels
- !$omp teams distribute		! { dg-error "OMP TEAMS DISTRIBUTE directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp teams distribute parallel do	! { dg-error "OMP TEAMS DISTRIBUTE PARALLEL DO directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp teams distribute parallel do simd	! { dg-error "OMP TEAMS DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp teams distribute simd	! { dg-error "OMP TEAMS DISTRIBUTE SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp parallel do		! { dg-error "OMP PARALLEL DO directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp parallel do simd		! { dg-error "OMP PARALLEL DO SIMD directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- !$acc kernels
- !$omp parallel			! { dg-error "OMP PARALLEL directive cannot be specified within" }
- !$omp end parallel
- !$acc end kernels
- !$acc kernels
- !$omp parallel sections		! { dg-error "OMP PARALLEL SECTIONS directive cannot be specified within" }
-   y = 1
- !$omp section
-   z = 2
- !$omp end parallel sections
- !$acc end kernels
- !$acc kernels
- !$omp sections			! { dg-error "OMP SECTIONS directive cannot be specified within" }
-   y = 1
- !$omp section
-   z = 2
- !$omp end sections
- !$acc end kernels
- !$acc kernels
- !$omp ordered			! { dg-error "OMP ORDERED directive cannot be specified within" }
- !$omp end ordered
- !$acc end kernels
- !$acc kernels
- !$omp critical			! { dg-error "OMP CRITICAL directive cannot be specified within" }
- !$omp end critical
- !$acc end kernels
- !$acc kernels
- !$omp master			! { dg-error "OMP MASTER directive cannot be specified within" }
- !$omp end master
- !$acc end kernels
- !$acc kernels
- !$omp single			! { dg-error "OMP SINGLE directive cannot be specified within" }
- !$omp end single
- !$acc end kernels
- !$acc kernels
- !$omp task			! { dg-error "OMP TASK directive cannot be specified within" }
- !$omp end task
- !$acc end kernels
- !$acc kernels
- !$omp workshare			! { dg-error "OMP WORKSHARE directive cannot be specified within" }
-   a(:) = 1
- !$omp end workshare
- !$acc end kernels
- !$acc kernels
- !$omp parallel workshare	! { dg-error "OMP PARALLEL WORKSHARE directive cannot be specified within" }
-   a(:) = 1
- !$omp end parallel workshare
- !$acc end kernels
- !$acc kernels
- !$omp do			! { dg-error "OMP DO directive cannot be specified within" }
-   do x = 0, 2
-   end do
- !$acc end kernels
- end
--- 0 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/pr93463.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/pr93463.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/pr93463.f90	Sun Apr 12 22:32:14 2026
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc/pr93463.f90	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- ! PR fortran/93463
- ! { dg-do compile { target fopenmp } }
- ! { dg-additional-options "-fopenmp" }
- 
- program pr93463
-    integer :: i, x, y, z
-    !$omp parallel do
-    do i = 1, 4
-       !$acc enter data create(x)	! { dg-error "ACC ENTER DATA directive cannot be specified within" }
-       !$acc exit data copyout(x)	! { dg-error "ACC EXIT DATA directive cannot be specified within" }
-       !$acc cache(y)			! { dg-error "ACC CACHE directive cannot be specified within" }
-       !$acc wait(1)			! { dg-error "ACC WAIT directive cannot be specified within" }
-       !$acc update self(z)		! { dg-error "ACC UPDATE directive cannot be specified within" }
-    end do
- end
--- 0 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/nesting-fail-1.f95 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/nesting-fail-1.f95
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/nesting-fail-1.f95	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/nesting-fail-1.f95	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,83 ----
+ module test
+ contains
+   subroutine ichi
+     implicit none
+     integer :: i
+     !$acc parallel
+     !$omp do ! { dg-error "cannot be specified" }
+     do i = 1,5
+     enddo
+     !$acc end parallel
+   end subroutine ichi
+ 
+   subroutine ni
+     implicit none
+     integer :: i
+     !$omp parallel
+     !$acc loop ! { dg-error "cannot be specified" }
+     do i = 1,5
+     enddo
+     !$omp end parallel
+   end subroutine ni
+ 
+   subroutine san
+     implicit none
+     integer :: i
+     !$omp do
+     !$acc loop ! { dg-error "Unexpected" }
+     do i = 1,5
+     enddo
+    end subroutine san
+ 
+    subroutine yon
+      implicit none
+      integer :: i
+      !$acc loop
+      !$omp do ! { dg-error "Expected DO loop" }
+      do i = 1,5
+      enddo
+    end subroutine yon
+ 
+    subroutine go
+      implicit none
+      integer :: i, j
+ 
+      !$omp parallel
+      do i = 1,5
+        !$acc kernels ! { dg-error "cannot be specified" }
+        do j = 1,5
+        enddo
+        !$acc end kernels
+      enddo
+      !$omp end parallel
+    end subroutine go
+ 
+    subroutine roku
+      implicit none
+ 
+      !$acc data
+      !$omp parallel ! { dg-error "cannot be specified" }
+      !$omp end parallel
+      !$acc end data
+    end subroutine roku
+ 
+    subroutine nana
+      !$acc parallel &
+      !$omp do ! { dg-error "Wrong OpenACC continuation" }
+      do i = 1, 5 ! { dg-error "The !.OMP DO directive cannot be specified within a !.ACC PARALLEL region" "" { target *-*-* } .-1 }
+      end do
+      !$acc end parallel
+ 
+      !$omp parallel &
+      !$acc kernels loop ! { dg-error "Wrong OpenMP continuation" }
+      do i = 1, 5 ! { dg-error "The !.ACC KERNELS LOOP directive cannot be specified within a !.OMP PARALLEL region" "" { target *-*-* } .-1 }
+      end do
+      !$omp end parallel
+ 
+      !$omp parallel &
+      !$acc loop ! { dg-error "Wrong OpenMP continuation" }
+      do i = 1, 5 ! { dg-error "The !.ACC LOOP directive cannot be specified within a !.OMP PARALLEL region" "" { target *-*-* } .-1 }
+      end do
+      !$omp end parallel
+    end subroutine nana
+ end module test
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr108382.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr108382.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr108382.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr108382.f90	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,19 ----
+ module m_108382_a
+   implicit none
+   integer :: x, y
+ 
+ !$acc declare copyin(x, &
+ !$acc   y)
+ !$omp declare target(x, &
+ !$omp   y)
+ end module m_108382_a
+ 
+ module m_108382_b
+   implicit none
+   integer :: x, y
+ 
+ !$omp declare target(x, &
+ !$omp   y)
+ !$acc declare copyin(x, &
+ !$acc   y)
+ end module m_108382_b
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr63858.f gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr63858.f
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr63858.f	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr63858.f	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,38 ----
+       SUBROUTINE ICHI
+       INTEGER :: ARGC
+       ARGC = COMMAND_ARGUMENT_COUNT ()
+ 
+ !$OMP PARALLEL
+ !$ACC PARALLEL                                                          &
+ !$ACC& COPYIN(ARGC)  ! { dg-error "The !.ACC PARALLEL directive cannot be specified within a !.OMP PARALLEL region" }
+       IF (ARGC .NE. 0) THEN
+          STOP 1
+       END IF
+ !$ACC END PARALLEL
+ !$OMP END PARALLEL
+ 
+       END SUBROUTINE ICHI
+ 
+ 
+       SUBROUTINE NI
+       IMPLICIT NONE
+       INTEGER :: I
+ 
+ !$ACC PARALLEL                                                          &
+ !$OMP& DO ! { dg-error "Wrong OpenACC continuation" }
+       DO I = 1, 10
+       ENDDO
+ !$ACC END PARALLEL
+ 
+ !$OMP PARALLEL                                                          &
+ !$ACC& KERNELS LOOP ! { dg-error "Wrong OpenMP continuation" }
+       DO I = 1, 10
+       ENDDO
+ !$OMP END PARALLEL
+ 
+ !$OMP PARALLEL                                                          &
+ !$ACC& LOOP ! { dg-error "Wrong OpenMP continuation" }
+       DO I = 1, 10
+       ENDDO
+ !$OMP END PARALLEL
+       END SUBROUTINE NI
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr93329.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr93329.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr93329.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr93329.f90	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,222 ----
+ ! PR fortran/93329
+ ! { dg-additional-options -Wno-deprecated-openmp }
+ 
+   integer :: x, y, z
+   integer :: a(32)
+ !$acc kernels copyout(x)
+ !$omp target map(from:x)	! { dg-error "OMP TARGET directive cannot be specified within" }
+   x = 5
+ !$omp end target
+ !$acc end kernels
+   print *, x
+ !$acc kernels
+ !$omp atomic			! { dg-error "OMP ATOMIC directive cannot be specified within" }
+   x = x + 1
+ !$omp end atomic
+ !$acc end kernels
+ !$acc kernels
+ !$omp barrier			! { dg-error "OMP BARRIER directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp cancel parallel		! { dg-error "OMP CANCEL directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp cancellation point parallel	! { dg-error "OMP CANCELLATION POINT directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp flush			! { dg-error "OMP FLUSH directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp distribute		! { dg-error "OMP DISTRIBUTE directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp distribute parallel do	! { dg-error "OMP DISTRIBUTE PARALLEL DO directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp distribute parallel do simd	! { dg-error "OMP DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp distribute simd		! { dg-error "OMP DISTRIBUTE SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp do simd			! { dg-error "OMP DO SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp simd			! { dg-error "OMP SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target data map(from: x)	! { dg-error "OMP TARGET DATA directive cannot be specified within" }
+ !$omp end target data
+ !$acc end kernels
+ !$acc kernels
+ !$omp target enter data map(to: x)	! { dg-error "OMP TARGET ENTER DATA directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp target exit data map(from: x)	! { dg-error "OMP TARGET EXIT DATA directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp target parallel		! { dg-error "OMP TARGET PARALLEL directive cannot be specified within" }
+ !$omp end target parallel
+ !$acc end kernels
+ !$acc kernels
+ !$omp target parallel do	! { dg-error "OMP TARGET PARALLEL DO directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target parallel do simd	! { dg-error "OMP TARGET PARALLEL DO SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target simd		! { dg-error "OMP TARGET SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target teams		! { dg-error "OMP TARGET TEAMS directive cannot be specified within" }
+ !$omp end target teams
+ !$acc end kernels
+ !$acc kernels
+ !$omp target teams distribute	! { dg-error "OMP TARGET TEAMS DISTRIBUTE directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target teams distribute parallel do	! { dg-error "OMP TARGET TEAMS DISTRIBUTE PARALLEL DO directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target teams distribute parallel do simd	! { dg-error "OMP TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target teams distribute simd	! { dg-error "OMP TARGET TEAMS DISTRIBUTE SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp target update to(x)	! { dg-error "OMP TARGET UPDATE directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp taskgroup			! { dg-error "OMP TASKGROUP directive cannot be specified within" }
+ !$omp end taskgroup
+ !$acc end kernels
+ !$acc kernels
+ !$omp taskloop			! { dg-error "OMP TASKLOOP directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp taskloop simd		! { dg-error "OMP TASKLOOP SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp taskwait			! { dg-error "OMP TASKWAIT directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp taskyield			! { dg-error "OMP TASKYIELD directive cannot be specified within" }
+ !$acc end kernels
+ !$acc kernels
+ !$omp teams			! { dg-error "OMP TEAMS directive cannot be specified within" }
+ !$omp end teams
+ !$acc end kernels
+ !$acc kernels
+ !$omp teams distribute		! { dg-error "OMP TEAMS DISTRIBUTE directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp teams distribute parallel do	! { dg-error "OMP TEAMS DISTRIBUTE PARALLEL DO directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp teams distribute parallel do simd	! { dg-error "OMP TEAMS DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp teams distribute simd	! { dg-error "OMP TEAMS DISTRIBUTE SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp parallel do		! { dg-error "OMP PARALLEL DO directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp parallel do simd		! { dg-error "OMP PARALLEL DO SIMD directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ !$acc kernels
+ !$omp parallel			! { dg-error "OMP PARALLEL directive cannot be specified within" }
+ !$omp end parallel
+ !$acc end kernels
+ !$acc kernels
+ !$omp parallel sections		! { dg-error "OMP PARALLEL SECTIONS directive cannot be specified within" }
+   y = 1
+ !$omp section
+   z = 2
+ !$omp end parallel sections
+ !$acc end kernels
+ !$acc kernels
+ !$omp sections			! { dg-error "OMP SECTIONS directive cannot be specified within" }
+   y = 1
+ !$omp section
+   z = 2
+ !$omp end sections
+ !$acc end kernels
+ !$acc kernels
+ !$omp ordered			! { dg-error "OMP ORDERED directive cannot be specified within" }
+ !$omp end ordered
+ !$acc end kernels
+ !$acc kernels
+ !$omp critical			! { dg-error "OMP CRITICAL directive cannot be specified within" }
+ !$omp end critical
+ !$acc end kernels
+ !$acc kernels
+ !$omp master			! { dg-error "OMP MASTER directive cannot be specified within" }
+ !$omp end master
+ !$acc end kernels
+ !$acc kernels
+ !$omp single			! { dg-error "OMP SINGLE directive cannot be specified within" }
+ !$omp end single
+ !$acc end kernels
+ !$acc kernels
+ !$omp task			! { dg-error "OMP TASK directive cannot be specified within" }
+ !$omp end task
+ !$acc end kernels
+ !$acc kernels
+ !$omp workshare			! { dg-error "OMP WORKSHARE directive cannot be specified within" }
+   a(:) = 1
+ !$omp end workshare
+ !$acc end kernels
+ !$acc kernels
+ !$omp parallel workshare	! { dg-error "OMP PARALLEL WORKSHARE directive cannot be specified within" }
+   a(:) = 1
+ !$omp end parallel workshare
+ !$acc end kernels
+ !$acc kernels
+ !$omp do			! { dg-error "OMP DO directive cannot be specified within" }
+   do x = 0, 2
+   end do
+ !$acc end kernels
+ end
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr93463.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr93463.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc-gomp/pr93463.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/goacc-gomp/pr93463.f90	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,13 ----
+ ! PR fortran/93463
+ 
+ program pr93463
+    integer :: i, x, y, z
+    !$omp parallel do
+    do i = 1, 4
+       !$acc enter data create(x)	! { dg-error "ACC ENTER DATA directive cannot be specified within" }
+       !$acc exit data copyout(x)	! { dg-error "ACC EXIT DATA directive cannot be specified within" }
+       !$acc cache(y)			! { dg-error "ACC CACHE directive cannot be specified within" }
+       !$acc wait(1)			! { dg-error "ACC WAIT directive cannot be specified within" }
+       !$acc update self(z)		! { dg-error "ACC UPDATE directive cannot be specified within" }
+    end do
+ end
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr101760.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/gomp/pr101760.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr101760.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/gomp/pr101760.f90	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,14 ----
+ ! PR fortran/101760
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp -O1" }
+ 
+ ! Verify that deferred-length character variables with the TARGET attribute
+ ! in OpenMP target regions do not ICE during inlining.
+ 
+ program p
+    character(:), allocatable, target :: x
+    logical :: l
+    !$omp target map(from: l)
+    l = allocated (x)
+    !$omp end target
+ end
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr102314.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/gomp/pr102314.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr102314.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/gomp/pr102314.f90	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,19 ----
+ ! PR fortran/102314
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp -O2" }
+ 
+ ! Verify that deferred-length character allocatables used inside
+ ! OpenMP target regions do not ICE during SSA verification or inlining.
+ 
+ program p
+    character(:), allocatable :: y
+    call s(y)
+    !$omp target
+    y = 'abc'
+    !$omp end target
+ contains
+    subroutine s(x)
+       character(:), allocatable :: x
+       x = '123'
+    end
+ end
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gfortran.dg/spread_scalar_zerosize.f90 gcc-16-20260419/gcc/testsuite/gfortran.dg/spread_scalar_zerosize.f90
*** gcc-16-20260412/gcc/testsuite/gfortran.dg/spread_scalar_zerosize.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gfortran.dg/spread_scalar_zerosize.f90	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,29 ----
+ ! { dg-do run }
+ program foo
+    integer(1) :: i1 = 4
+    integer(2) :: i2 = 4
+    integer(4) :: i4 = 4, dm, nc
+    integer(8) :: i8 = 4
+    real(4) :: r4 = 4
+    real(8) :: r8 = 4
+    complex(4) :: c4 = 4
+    complex(8) :: c8 = 4
+    if (any(shape(spread(i1,1,-1)) /= 0)) stop 1
+    if (any(shape(spread(i2,1,-1)) /= 0)) stop 2
+    if (any(shape(spread(i4,1,-1)) /= 0)) stop 3
+    if (any(shape(spread(i8,1,-1)) /= 0)) stop 4
+    if (any(shape(spread(r4,1,-1)) /= 0)) stop 5
+    if (any(shape(spread(r8,1,-1)) /= 0)) stop 6
+    if (any(shape(spread(c4,1,-1)) /= 0)) stop 7
+    if (any(shape(spread(c8,1,-1)) /= 0)) stop 8
+    dm = 1
+    nc = -1
+    if (any(shape(spread(i1,dm,nc)) /= 0)) stop 9
+    if (any(shape(spread(i2,dm,nc)) /= 0)) stop 10
+    if (any(shape(spread(i4,dm,nc)) /= 0)) stop 11
+    if (any(shape(spread(i8,dm,nc)) /= 0)) stop 12
+    if (any(shape(spread(r4,dm,nc)) /= 0)) stop 13
+    if (any(shape(spread(r8,dm,nc)) /= 0)) stop 14
+    if (any(shape(spread(c4,dm,nc)) /= 0)) stop 15
+    if (any(shape(spread(c8,dm,nc)) /= 0)) stop 16
+ end program foo
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/printsize.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/printsize.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/printsize.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/printsize.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,10 ----
+ MODULE printsize;
+ 
+ FROM SYSTEM IMPORT WORD, WORD32 ;
+ FROM libc IMPORT printf ;
+ 	  
+ 	  
+ BEGIN				(*   Module printsize Initialization Code  *)
+      printf ("SIZE (WORD) = %d\n", SIZE (WORD)) ;
+      printf ("SIZE (WORD32) = %d\n", SIZE (WORD32)) ;     
+ END printsize.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,21 ----
+ MODULE setcons ;
+ 
+ TYPE
+    Subrange = [10..40] ;
+    Set = SET OF Subrange ;
+ 
+ VAR
+    u: Subrange ;
+    s: Set ;
+ 
+ 
+ PROCEDURE Init ;
+ BEGIN
+    u := MIN (u) ;
+    s := Set {u}
+ END Init ;
+ 
+ 
+ BEGIN
+    Init
+ END setcons.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons2.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons2.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons2.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons2.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,37 ----
+ MODULE setcons2 ;
+ 
+ FROM libc IMPORT exit, printf ;
+ 
+ 
+ TYPE
+    Subrange = [10..40] ;
+    Set = SET OF Subrange ;
+ 
+ VAR
+    u: Subrange ;
+    s: Set ;
+ 
+ 
+ PROCEDURE Assert (condition: BOOLEAN; testno: CARDINAL) ;
+ BEGIN
+    IF NOT condition
+    THEN
+       printf ("assert %d failed\n", testno) ;
+       exit (testno)
+    END
+ END Assert ;
+ 
+ 
+ 
+ PROCEDURE Init ;
+ BEGIN
+    u := MIN (u) ;
+    s := Set {u} ;
+    Assert (s = Set {10}, 1)
+ END Init ;
+ 
+ 
+ BEGIN
+    Init ;
+    printf ("all tests passed\n")
+ END setcons2.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons3.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons3.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons3.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons3.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,24 ----
+ MODULE setcons3 ;
+ 
+ TYPE
+    Subrange = [10..40] ;
+    Set = SET OF Subrange ;
+    Rec = RECORD
+             field: Subrange ;
+          END ;
+ 
+ VAR
+    u: Subrange ;
+    s: Set ;
+    r: Rec ;
+ 
+ 
+ PROCEDURE Init ;
+ BEGIN
+    s := Set {u}
+ END Init ;
+ 
+ 
+ BEGIN
+    Init
+ END setcons3.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons4.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons4.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons4.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons4.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,26 ----
+ MODULE setcons4 ;
+ 
+ TYPE
+    Subrange = [10..40] ;
+    Set = SET OF Subrange ;
+    Rec = RECORD
+             field: Subrange ;
+          END ;
+ 
+ VAR
+    u: Subrange ;
+    s: Set ;
+    r: Rec ;
+ 
+ 
+ PROCEDURE Init ;
+ BEGIN
+    WITH r DO
+       s := Set {field}
+    END
+ END Init ;
+ 
+ 
+ BEGIN
+    Init ;
+ END setcons4.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons5.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons5.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/setcons5.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/setcons5.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,26 ----
+ MODULE setcons5 ;
+ 
+ TYPE
+    Subrange = [10..40] ;
+    Set = SET OF Subrange ;
+    Rec = RECORD
+             field: Subrange ;
+          END ;
+ 
+ VAR
+    u: Subrange ;
+    s: Set ;
+    r: Rec ;
+ 
+ 
+ PROCEDURE Init ;
+ BEGIN
+    WITH r DO
+       s := Set {field}
+    END
+ END Init ;
+ 
+ 
+ BEGIN
+    Init ;
+ END setcons5.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric.mod	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric.mod	Sun Apr 19 22:32:17 2026
*************** BEGIN
*** 31,37 ****
     INC (test) ;
     IF NOT b
     THEN
!       printf ("failed test %d which was %a\n", ADR(a)) ;
        code := 1
     END
  END assert ;
--- 31,38 ----
     INC (test) ;
     IF NOT b
     THEN
!       printf ("failed test %d ", test) ;
!       printf ("(%s)\n", ADR (a)) ;
        code := 1
     END
  END assert ;
*************** BEGIN
*** 49,59 ****
--- 50,62 ----
     THEN
        w := c ;
        i := w ;
+       printf ("value of i (should be 1 after going though a variable and word) is %d\n", i);
        assert (CARDINAL(i) = c, "copying data through WORD32")
     END ;
  
     w := 1 ;
     i := w ;
+    printf ("value of i (should be 1, constant to word) is %d\n", i);
     assert (i=1, "assigning const into a WORD32") ;
     
     exit (code)
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric2.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric2.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric2.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric2.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,9 ----
+ MODULE testgeneric2 ;
+ 
+ FROM SYSTEM IMPORT WORD32 ;
+ 
+ VAR
+    w: WORD32 ;
+ BEGIN
+    w := 1
+ END testgeneric2.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric3.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric3.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric3.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric3.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,55 ----
+ (* Copyright (C) 2015 Free Software Foundation, Inc. *)
+ (* This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 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.
+ 
+ GNU Modula-2 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.
+ 
+ You should have received a copy of the GNU General Public License along
+ with gm2; see the file COPYING.  If not, write to the Free Software
+ Foundation, 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. *)
+ 
+ MODULE testgeneric3 ;
+ 
+ FROM SYSTEM IMPORT WORD32, ADR ;
+ FROM libc IMPORT printf, exit ;
+ 
+ 
+ VAR
+    test: CARDINAL ;
+    code: INTEGER ;
+ 
+ PROCEDURE assert (b: BOOLEAN; a: ARRAY OF CHAR) ;
+ BEGIN
+    INC (test) ;
+    IF NOT b
+    THEN
+       printf ("failed test %d which was %a\n", ADR(a)) ;
+       code := 1
+    END
+ END assert ;
+ 
+ 
+ VAR
+    w: WORD32 ;
+    c: CARDINAL ;
+    i: INTEGER ;
+ BEGIN
+    code := 0 ;
+    test := 0 ;
+    c := 1 ;
+    IF SIZE(w)=SIZE(c)
+    THEN
+       w := c ;
+       i := w ;
+       assert (CARDINAL(i) = c, "copying data through WORD32")
+    END ;
+    exit (code)
+ END testgeneric3.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric4.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric4.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric4.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric4.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,29 ----
+ (* Copyright (C) 2015 Free Software Foundation, Inc. *)
+ (* This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 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.
+ 
+ GNU Modula-2 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.
+ 
+ You should have received a copy of the GNU General Public License along
+ with gm2; see the file COPYING.  If not, write to the Free Software
+ Foundation, 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. *)
+ 
+ MODULE testgeneric4 ;
+ 
+ FROM SYSTEM IMPORT WORD32 ;
+ 
+ VAR
+    w: WORD32 ;
+    i: INTEGER ;
+ BEGIN
+    w := 1 ;
+    i := w ;
+ END testgeneric4.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric5.mod gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric5.mod
*** gcc-16-20260412/gcc/testsuite/gm2/iso/run/pass/testgeneric5.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gm2/iso/run/pass/testgeneric5.mod	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,29 ----
+ (* Copyright (C) 2015 Free Software Foundation, Inc. *)
+ (* This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 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.
+ 
+ GNU Modula-2 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.
+ 
+ You should have received a copy of the GNU General Public License along
+ with gm2; see the file COPYING.  If not, write to the Free Software
+ Foundation, 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. *)
+ 
+ MODULE testgeneric5 ;
+ 
+ FROM SYSTEM IMPORT WORD ;
+ 
+ VAR
+    w: WORD ;
+    i: INTEGER ;
+ BEGIN
+    w := 1 ;
+    i := w ;
+ END testgeneric5.
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gnat.dg/specs/float_literal1.ads gcc-16-20260419/gcc/testsuite/gnat.dg/specs/float_literal1.ads
*** gcc-16-20260412/gcc/testsuite/gnat.dg/specs/float_literal1.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gnat.dg/specs/float_literal1.ads	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,5 ----
+ package Float_Literal1 is
+ 
+   F : Float := 1.1e11111111111; -- { dg-error "not in range|fails" }
+ 
+ end Float_Literal1;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gnat.dg/specs/float_literal2.ads gcc-16-20260419/gcc/testsuite/gnat.dg/specs/float_literal2.ads
*** gcc-16-20260412/gcc/testsuite/gnat.dg/specs/float_literal2.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gnat.dg/specs/float_literal2.ads	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,5 ----
+ package Float_Literal2 is
+ 
+   I : Integer := 1.1e11111111; -- { dg-error "expected type|found type" }
+ 
+ end Float_Literal2;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gnat.dg/warn35.adb gcc-16-20260419/gcc/testsuite/gnat.dg/warn35.adb
*** gcc-16-20260412/gcc/testsuite/gnat.dg/warn35.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gnat.dg/warn35.adb	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,16 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnatwu" }
+ 
+ procedure Warn35 is
+ 
+   type Bit is ('0', '1');
+ 
+   type Bit_Array is array (1 .. 2) of Bit;
+ 
+   Bits : constant Bit_Array := ("01");
+ 
+   B : Bit;
+ 
+ begin
+   B := Bits (1);
+ end;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/gnat.dg/warn36.adb gcc-16-20260419/gcc/testsuite/gnat.dg/warn36.adb
*** gcc-16-20260412/gcc/testsuite/gnat.dg/warn36.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/gnat.dg/warn36.adb	Sun Apr 19 22:32:17 2026
***************
*** 0 ****
--- 1,12 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnatwu" }
+ 
+ procedure Warn36 is
+ 
+   type Arr is array (1 .. 65) of Integer;
+ 
+   A : Arr;
+    
+ begin
+   A := (others => 1);
+ end;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/go.test/go-test.exp gcc-16-20260419/gcc/testsuite/go.test/go-test.exp
*** gcc-16-20260412/gcc/testsuite/go.test/go-test.exp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/go.test/go-test.exp	Sun Apr 19 22:32:17 2026
*************** proc errchk { test opts } {
*** 82,90 ****
  	set filename "errchk-$filename"
      }
      set fdin [open $test r]
!     fconfigure $fdin -encoding binary
      set fdout [open $filename w]
!     fconfigure $fdout -encoding binary
      while { [gets $fdin copy_line] >= 0 } {
  	if [string match "*////*" $copy_line] {
  	    puts $fdout $copy_line
--- 82,90 ----
  	set filename "errchk-$filename"
      }
      set fdin [open $test r]
!     fconfigure $fdin -translation binary
      set fdout [open $filename w]
!     fconfigure $fdout -translation binary
      while { [gets $fdin copy_line] >= 0 } {
  	if [string match "*////*" $copy_line] {
  	    puts $fdout $copy_line
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/compile.exp gcc-16-20260419/gcc/testsuite/rust/compile/compile.exp
*** gcc-16-20260412/gcc/testsuite/rust/compile/compile.exp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/compile.exp	Sun Apr 19 22:32:18 2026
*************** dg-init
*** 28,48 ****
  set saved-dg-do-what-default ${dg-do-what-default}
  
  set dg-do-what-default "compile"
! 
! set tests [lsort [glob -nocomplain $srcdir/$subdir/*.rs]]
! set ignore_list [list "issue_4402_foo.rs"]
! 
! set tests_to_run [list]
! foreach t $tests {
!     set filename [file tail $t]
!     if {[lsearch -exact $ignore_list $filename] == -1} {
!         lappend tests_to_run $t
!     }
! }
! 
! dg-runtest $tests_to_run "" ""
! 
  set dg-do-what-default ${saved-dg-do-what-default}
  
  # All done.
! dg-finish
\ No newline at end of file
--- 28,35 ----
  set saved-dg-do-what-default ${dg-do-what-default}
  
  set dg-do-what-default "compile"
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" ""
  set dg-do-what-default ${saved-dg-do-what-default}
  
  # All done.
! dg-finish
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/compiler_builtins_gate.rs gcc-16-20260419/gcc/testsuite/rust/compile/compiler_builtins_gate.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/compiler_builtins_gate.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/compiler_builtins_gate.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,3 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![compiler_builtins] // { dg-error "the ..compiler_builtins. attribute is used to identify the compiler_builtins" }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/ctlz.rs gcc-16-20260419/gcc/testsuite/rust/compile/ctlz.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/ctlz.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/ctlz.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,17 ----
+ // { dg-do compile }
+ #![feature(intrinsics, lang_items, no_core)]
+ #![no_core]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ #[lang = "copy"]
+ pub trait Copy {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32; // { dg-error "ctlz intrinsics can only be used with basic integer types .got 'bool'." }
+ }
+ 
+ fn main() {
+     let _ = ctlz(true);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/ctlz_nonzero.rs gcc-16-20260419/gcc/testsuite/rust/compile/ctlz_nonzero.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/ctlz_nonzero.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/ctlz_nonzero.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile }
+ #![feature(intrinsics, lang_items, no_core)]
+ #![no_core]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ #[lang = "copy"]
+ pub trait Copy {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32; // { dg-error "ctlz intrinsics can only be used with basic integer types .got 'bool'." }
+ }
+ 
+ fn main() {
+     unsafe {
+         let _ = ctlz_nonzero(true);
+     }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/cttz.rs gcc-16-20260419/gcc/testsuite/rust/compile/cttz.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/cttz.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/cttz.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,17 ----
+ // { dg-do compile }
+ #![feature(intrinsics, lang_items, no_core)]
+ #![no_core]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ #[lang = "copy"]
+ pub trait Copy {}
+ 
+ extern "rust-intrinsic" {
+     pub fn cttz<T>(x: T) -> u32; // { dg-error "cttz intrinsics can only be used with basic integer types .got 'bool'." }
+ }
+ 
+ fn main() {
+     let _ = cttz(true);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/cttz_nonzero.rs gcc-16-20260419/gcc/testsuite/rust/compile/cttz_nonzero.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/cttz_nonzero.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/cttz_nonzero.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile }
+ #![feature(intrinsics, lang_items, no_core)]
+ #![no_core]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ #[lang = "copy"]
+ pub trait Copy {}
+ 
+ extern "rust-intrinsic" {
+     pub fn cttz_nonzero<T>(x: T) -> u32; // { dg-error "cttz intrinsics can only be used with basic integer types .got 'bool'." }
+ }
+ 
+ fn main() {
+     unsafe {
+         let _ = cttz_nonzero(true);
+     }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/doc_macro.rs gcc-16-20260419/gcc/testsuite/rust/compile/doc_macro.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/doc_macro.rs	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/doc_macro.rs	Sun Apr 19 22:32:18 2026
***************
*** 1,4 ****
--- 1,14 ----
+ #![feature(rustc_attrs)]
  #![feature(no_core)]
  #![no_core]
  #![feature(extended_key_value_attributes)]
  #![doc = concat!("AB")]
+ 
+ // This macro export should not be required for rust 1.49 because inner
+ // attributes are resolved after the macros, however it is required in newer
+ // versions of rustc.
+ #[macro_export]
+ #[rustc_builtin_macro]
+ macro_rules! concat {
+     () => {{}};
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs gcc-16-20260419/gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs	Sun Apr 19 22:32:18 2026
*************** macro_rules! concat {
*** 8,13 ****
--- 8,18 ----
      () => {{}};
  }
  
+ #[rustc_builtin_macro]
+ macro_rules! stringify {
+     () => {{}};
+ }
+ 
  macro_rules! prefix_symbol(
      ($prefix : tt, { $($ident: ident, )* }) => {
          $(
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-default.rs gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-default.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-default.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-default.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,17 ----
+ #![feature(specialization)]
+ #![feature(no_core)]
+ #![no_core]
+ 
+ trait Trait {
+     fn unqualified_fn();
+     unsafe fn unsafe_fn();
+ }
+ 
+ impl<T> Trait for T {
+     default fn unqualified_fn() {}
+ 
+     // `default` precedes all other qualifiers
+     unsafe default fn unsafe_fn() {}
+     // { dg-error "invalid order of function qualifiers; found .unsafe default., expected .default unsafe." "" { target *-*-* } .-1 }
+     // { dg-error "failed to parse trait impl item in trait impl" "" { target *-*-* } .-2 }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-order-1.rs gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-order-1.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-order-1.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-order-1.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,39 ----
+ // { dg-additional-options "-frust-edition=2018" }
+ #![allow(unused)]
+ #![allow(incomplete_features)]
+ 
+ #![feature(no_core)]
+ #![no_core]
+ 
+ mod valid {
+     pub fn unqualified_fn() {}
+ 
+     const fn const_fn() {}
+ 
+     pub async fn async_fn() {}
+ 
+     pub unsafe fn unsafe_fn() {}
+ 
+     async unsafe fn async_unsafe_fn() {}
+ 
+     unsafe extern "C" fn unsafe_extern_fn() {}
+ 
+     async unsafe extern "C" fn async_unsafe_extern_fn() {}
+ 
+     const unsafe extern "C" fn const_unsafe_extern_fn() {}
+ 
+     /*
+     // `safe` is not implemented yet
+     unsafe extern "C" {
+         safe fn const_safe_extern_fn();
+     }
+     */
+ }
+ 
+ mod invalid {
+     // `async` precedes `unsafe`
+     unsafe async fn async_unsafe_fn() {}
+     // { dg-error "unexpected token .async. in some sort of unsafe production" "" { target *-*-* } .-1 }
+     // { dg-error "failed to parse item in module" "" { target *-*-* } .-2 }
+ }
+ 
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-order-2.rs gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-order-2.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-order-2.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-order-2.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,6 ----
+ // { dg-additional-options "-frust-edition=2018" }
+ #![feature(no_core)]
+ #![no_core]
+ 
+ async unsafe async fn duplicate_qualifier() {} // { dg-error "encountered duplicate function qualifier .async." }
+ 
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-order-3.rs gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-order-3.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/func-qualifier-order-3.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/func-qualifier-order-3.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,14 ----
+ #![feature(min_specialization)]
+ #![feature(no_core)]
+ #![no_core]
+ 
+ trait Dummy {
+ }
+ 
+ // the purpose of this is to trigger the compiler message
+ // regarding the order of qualifiers
+ impl<T> Dummy for T {
+     default async unsafe extern "C" const fn all_the_qualifiers() {}
+     // { dg-error "invalid order of function qualifiers; found .default async unsafe extern const., expected .default const async unsafe extern." "" { target *-*-* } .-1 }
+     // { dg-error "failed to parse trait impl item in trait impl" "" { target *-*-* } .-2 }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/glob-import-all.rs gcc-16-20260419/gcc/testsuite/rust/compile/glob-import-all.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/glob-import-all.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/glob-import-all.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,9 ----
+ // { dg-additional-options "-frust-edition=2015" }
+ 
+ #![feature(no_core)]
+ #![no_core]
+ 
+ mod a {
+     #[allow(unused)]
+     use ::*;
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3550.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3550.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3550.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3550.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,7 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ #[cfg_attr(not(wrong = "32"), repr(i32))]
+ enum Eu64 {
+     Au64 = 0,
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3555.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3555.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3555.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3555.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,14 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ fn main() {
+     match SomeStruct(2) {
+         StructConst1(_) => {}
+ 
+         _ => {}
+     }
+ 
+     struct SomeStruct(u8);
+ 
+     const StructConst1: SomeStruct = SomeStruct(1);
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3591.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3591.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3591.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3591.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,8 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ fn main() {
+     match (0, 92, 29) {
+         (pat, ..) => {}
+     }
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3597.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3597.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3597.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3597.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,11 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ enum E {
+     A = {
+         enum F {  }
+         0
+     }
+ }
+ 
+ fn main() {}
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3651.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3651.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3651.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3651.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,12 ----
+ #![feature(no_core)]
+ #![no_core]
+ enum E {
+     A = {
+         enum F {
+             Ai32 = -1,
+         }
+         0
+     },
+ }
+ 
+ fn main() {}
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3661.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3661.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3661.rs	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3661.rs	Sun Apr 19 22:32:18 2026
***************
*** 1,9 ****
  #![feature(no_core)]
  #![no_core]
  #![feature(extended_key_value_attributes)]
  
  pub macro m($inner_str:expr) {
!     #[m = $inner_str] 
      // { dg-error "macro not found" "" { target *-*-* } .-1 }
  
      struct S;
--- 1,15 ----
  #![feature(no_core)]
  #![no_core]
  #![feature(extended_key_value_attributes)]
+ #![feature(rustc_attrs)]
+ 
+ #[rustc_builtin_macro]
+ macro_rules! stringify {
+     () => {{}};
+ }
  
  pub macro m($inner_str:expr) {
!     #[m = $inner_str]
      // { dg-error "macro not found" "" { target *-*-* } .-1 }
  
      struct S;
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3670.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3670.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3670.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3670.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,11 ----
+ #![feature(no_core)]
+ #![no_core]
+ enum E {
+     A = {
+         enum Foo {
+             Bar(isize),
+             Baz,
+         }
+         0
+     },
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3672.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3672.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3672.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3672.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,12 ----
+ // { dg-options "-w" }
+ #![feature(no_core)]
+ #![no_core]
+ struct Y(usize, usize);
+ 
+ fn distinct_variant() {
+     let y = Y(1, 2);
+ 
+     let a = match y {
+         Y(a, _) => a,
+     };
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3875.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3875.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3875.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3875.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,28 ----
+ #![crate_type = "lib"]
+ #![feature(no_core)]
+ #![feature(lang_items)]
+ #![no_core]
+ // { dg-options "-w" }
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ #[lang = "clone"]
+ pub trait Clone: Sized {
+     fn clone(&self) -> Self;
+ }
+ 
+ #[lang = "copy"]
+ pub trait Copy: Clone {}
+ 
+ #[derive(Clone)] // { dg-error "derive may only be applied to structs, enums and unions" }
+ fn foo() {}
+ 
+ #[derive(Clone)] // { dg-error "derive may only be applied to structs, enums and unions" }
+ trait Bar {}
+ 
+ // Valid test: Derive Copy and Clone on a unit struct
+ #[derive(Copy, Clone)]
+ struct TupleStruct;
+ 
+ // { dg-prune-output "could not resolve" }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3910.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3910.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3910.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3910.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,14 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ struct B<const M: u32> {}
+ 
+ impl<const M: u32> B<M> {
+     const M: u32 = M;
+ }
+ 
+ struct C;
+ 
+ impl<const M: u32> C { // { dg-error "unconstrained type parameter" }
+     const USE_M: u32 = M;
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3919-ice-func-parms.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3919-ice-func-parms.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3919-ice-func-parms.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3919-ice-func-parms.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,4 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ fn func(1: i32) {} // { dg-error "refutable pattern in function argument" }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-3931.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-3931.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-3931.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-3931.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,16 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ trait Foo {
+     fn foo();
+ }
+ 
+ impl Foo for [(); 1] { // { dg-error "missing foo in implementation of trait .Foo. " }
+     fn main() {        // { dg-error "method .main. is not a member of trait .Foo." }
+         <[(); 0] as Foo>::foo() 
+     }
+ }
+ 
+ fn main() {
+     <[(); 0] as Foo>::foo() 
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-4226.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-4226.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-4226.rs	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-4226.rs	Sun Apr 19 22:32:18 2026
***************
*** 1,6 ****
  #![feature(no_core)]
  #![no_core]
  
  #[doc]
! // { dg-error "attribute must be of the form ...doc.hidden.inline....... or ...doc = string.." "" { target *-*-* } .-1 }
! pub fn a(){}
--- 1,6 ----
  #![feature(no_core)]
  #![no_core]
  
+ // { dg-error "valid forms for the attribute are ...doc.hidden.inline....... and ...doc ... string ..." "" { target *-*-* } .+1 }
  #[doc]
! pub fn a() {}
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue-4517.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue-4517.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue-4517.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue-4517.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,5 ----
+ #![feature(no_core)]
+ #![no_core]
+ 
+ const _: () = if true {};
+ const x: () = if true {}; // { dg-warning "unused name" "" { target *-*-* } }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/issue_4402_foo.rs gcc-16-20260419/gcc/testsuite/rust/compile/issue_4402_foo.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/issue_4402_foo.rs	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/issue_4402_foo.rs	Sun Apr 19 22:32:18 2026
***************
*** 1 ****
--- 1,2 ----
+ // { dg-skip-if "See 'issue-4402.rs'." { *-*-* } }
  pub struct Bar;
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp gcc-16-20260419/gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp
*** gcc-16-20260412/gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp	Sun Apr 19 22:32:18 2026
***************
*** 1,6 ****
- #![feature(no_core)]
- #![no_core]
- 
  # Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
--- 1,3 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp gcc-16-20260419/gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp
*** gcc-16-20260412/gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp	Sun Apr 19 22:32:18 2026
***************
*** 1,6 ****
- #![feature(no_core)]
- #![no_core]
- 
  # Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
--- 1,3 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/macros/proc/proc_macro.exp gcc-16-20260419/gcc/testsuite/rust/compile/macros/proc/proc_macro.exp
*** gcc-16-20260412/gcc/testsuite/rust/compile/macros/proc/proc_macro.exp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/macros/proc/proc_macro.exp	Sun Apr 19 22:32:18 2026
***************
*** 1,6 ****
- #![feature(no_core)]
- #![no_core]
- 
  # Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
--- 1,3 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/match-struct-path.rs gcc-16-20260419/gcc/testsuite/rust/compile/match-struct-path.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/match-struct-path.rs	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/match-struct-path.rs	Sun Apr 19 22:32:18 2026
*************** pub fn foo(v: S) {
*** 8,10 ****
--- 8,16 ----
          S => ()
      }
  }
+ 
+ pub fn bar(v: S) {
+     match v {
+         crate::S => ()
+     }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/parse_time_feature_gate.rs gcc-16-20260419/gcc/testsuite/rust/compile/parse_time_feature_gate.rs
*** gcc-16-20260412/gcc/testsuite/rust/compile/parse_time_feature_gate.rs	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/parse_time_feature_gate.rs	Sun Apr 19 22:32:18 2026
***************
*** 1,5 ****
--- 1,16 ----
  #![feature(no_core)]
  #![no_core]
+ #![feature(rustc_attrs)]
+ 
+ #[rustc_builtin_macro]
+ macro_rules! concat {
+     () => {{}};
+ }
+ 
+ #[rustc_builtin_macro]
+ macro_rules! stringify {
+     () => {{}};
+ }
  
  // { dg-error "arbitrary expressions in key-value attributes are unstable" "" { target *-*-* } .+1 }
  #[export_name = concat!(stringify!(non), stringify!(literal))]
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/torture/compile.exp gcc-16-20260419/gcc/testsuite/rust/compile/torture/compile.exp
*** gcc-16-20260412/gcc/testsuite/rust/compile/torture/compile.exp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/torture/compile.exp	Sun Apr 19 22:32:18 2026
***************
*** 1,6 ****
- #![feature(no_core)]
- #![no_core]
- 
  # Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
--- 1,3 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/compile/xfail/xfail.exp gcc-16-20260419/gcc/testsuite/rust/compile/xfail/xfail.exp
*** gcc-16-20260412/gcc/testsuite/rust/compile/xfail/xfail.exp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/testsuite/rust/compile/xfail/xfail.exp	Sun Apr 19 22:32:18 2026
***************
*** 1,6 ****
- #![feature(no_core)]
- #![no_core]
- 
  # Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
--- 1,3 ----
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/ident_pat_vs_path_1.rs gcc-16-20260419/gcc/testsuite/rust/execute/ident_pat_vs_path_1.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/ident_pat_vs_path_1.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/ident_pat_vs_path_1.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,27 ----
+ // { dg-additional-options "-w" }
+ #![feature(no_core)]
+ #![no_core]
+ 
+ enum E {
+     A,
+     B,
+     C
+ }
+ 
+ fn main() -> i32 {
+     use E::C;
+ 
+     let v1 = match E::A {
+         C => 1,
+         E::A => 0,
+         E::B => 1
+     };
+ 
+     let v2 = match E::A {
+         B => 0,
+         E::A => 1,
+         C => 1
+     };
+ 
+     v1 + v2
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/ident_pat_vs_path_2.rs gcc-16-20260419/gcc/testsuite/rust/execute/ident_pat_vs_path_2.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/ident_pat_vs_path_2.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/ident_pat_vs_path_2.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,18 ----
+ // { dg-additional-options "-w" }
+ #![feature(no_core)]
+ #![no_core]
+ 
+ enum E {
+     A,
+     B,
+     C
+ }
+ 
+ fn main() -> i32 {
+     use E::*;
+ 
+     match A {
+         C => 1,
+         _ => 0
+     }
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/non_decimal_128_saturation.rs gcc-16-20260419/gcc/testsuite/rust/execute/non_decimal_128_saturation.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/non_decimal_128_saturation.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/non_decimal_128_saturation.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,24 ----
+ // { dg-do run }
+ // { dg-require-effective-target lp64 }
+ // { dg-options "-O0" }
+ #![feature(no_core)]
+ #![no_core]
+ 
+ fn main() -> i32 {
+     let hex_val: u128 = 0x1_0000_0000_0000_0000_u128;
+     if (hex_val >> 64) as u8 != 1 {
+         return 1;
+     }
+ 
+     let bin_val: u128 =
+         0b1_00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000_u128;
+     if (bin_val >> 64) as u8 != 1 {
+         return 1;
+     }
+ 
+     let oct_val: u128 = 0o2_000_000_000_000_000_000_000_u128;
+     if (oct_val >> 64) as u8 != 1 {
+         return 1;
+     }
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,56 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0u8) != 8 {
+         abort();
+     }
+     if ctlz(1u8) != 7 {
+         abort();
+     }
+     if ctlz(255u8) != 0 {
+         abort();
+     }
+ 
+     if ctlz(0u16) != 16 {
+         abort();
+     }
+     if ctlz(1u16) != 15 {
+         abort();
+     }
+     if ctlz(0xFFFFu16) != 0 {
+         abort();
+     }
+ 
+     if ctlz(0u32) != 32 {
+         abort();
+     }
+     if ctlz(1u32) != 31 {
+         abort();
+     }
+     if ctlz(0xFFFFFFFFu32) != 0 {
+         abort();
+     }
+ 
+     if ctlz(0u64) != 64 {
+         abort();
+     }
+     if ctlz(1u64) != 63 {
+         abort();
+     }
+     if ctlz(!0u64) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i16.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i16.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i16.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i16.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,28 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0i16) != 16 {
+         abort();
+     }
+     // 1i16 = 0x0001: 15 leading zeros
+     if ctlz(1i16) != 15 {
+         abort();
+     }
+     // -1i16 = 0xFFFF: 0 leading zeros
+     if ctlz(-1i16) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i32.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i32.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i32.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i32.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,28 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0i32) != 32 {
+         abort();
+     }
+     // 1i32 = 0x00000001: 31 leading zeros
+     if ctlz(1i32) != 31 {
+         abort();
+     }
+     // -1i32 = 0xFFFFFFFF: 0 leading zeros
+     if ctlz(-1i32) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i64.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i64.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i64.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i64.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,28 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0i64) != 64 {
+         abort();
+     }
+     // 1i64 = 0x0000000000000001: 63 leading zeros
+     if ctlz(1i64) != 63 {
+         abort();
+     }
+     // -1i64 = 0xFFFFFFFFFFFFFFFF: 0 leading zeros
+     if ctlz(-1i64) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i8.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i8.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_i8.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_i8.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,29 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     // 0i8 has all 8 bits zero
+     if ctlz(0i8) != 8 {
+         abort();
+     }
+     // 1i8 = 0x01: 7 leading zeros
+     if ctlz(1i8) != 7 {
+         abort();
+     }
+     // -1i8 = 0xFF in two's complement: all bits set, 0 leading zeros
+     if ctlz(-1i8) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,46 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         if ctlz_nonzero(1u8) != 7 {
+             abort();
+         }
+         if ctlz_nonzero(255u8) != 0 {
+             abort();
+         }
+ 
+         if ctlz_nonzero(1u16) != 15 {
+             abort();
+         }
+         if ctlz_nonzero(0xFFFFu16) != 0 {
+             abort();
+         }
+ 
+         if ctlz_nonzero(1u32) != 31 {
+             abort();
+         }
+         if ctlz_nonzero(0xFFFFFFFFu32) != 0 {
+             abort();
+         }
+ 
+         if ctlz_nonzero(1u64) != 63 {
+             abort();
+         }
+         if ctlz_nonzero(!0u64) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i16.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i16.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i16.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i16.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,27 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         // 1i16 = 0x0001: 15 leading zeros
+         if ctlz_nonzero(1i16) != 15 {
+             abort();
+         }
+         // -1i16 = 0xFFFF: 0 leading zeros
+         if ctlz_nonzero(-1i16) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i32.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i32.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i32.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i32.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,27 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         // 1i32 = 0x00000001: 31 leading zeros
+         if ctlz_nonzero(1i32) != 31 {
+             abort();
+         }
+         // -1i32 = 0xFFFFFFFF: 0 leading zeros
+         if ctlz_nonzero(-1i32) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i64.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i64.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i64.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i64.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,27 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         // 1i64 = 0x0000000000000001: 63 leading zeros
+         if ctlz_nonzero(1i64) != 63 {
+             abort();
+         }
+         // -1i64 = 0xFFFFFFFFFFFFFFFF: 0 leading zeros
+         if ctlz_nonzero(-1i64) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i8.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i8.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i8.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_i8.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,27 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         // 1i8 = 0x01: 7 leading zeros
+         if ctlz_nonzero(1i8) != 7 {
+             abort();
+         }
+         // -1i8 = 0xFF: 0 leading zeros
+         if ctlz_nonzero(-1i8) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u16.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u16.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u16.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u16.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,25 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         if ctlz_nonzero(1u16) != 15 {
+             abort();
+         }
+         if ctlz_nonzero(0xFFFFu16) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u32.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u32.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u32.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u32.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,25 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         if ctlz_nonzero(1u32) != 31 {
+             abort();
+         }
+         if ctlz_nonzero(0xFFFFFFFFu32) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u64.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u64.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u64.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u64.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,25 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         if ctlz_nonzero(1u64) != 63 {
+             abort();
+         }
+         if ctlz_nonzero(!0u64) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u8.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u8.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u8.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_nonzero_u8.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,25 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         if ctlz_nonzero(1u8) != 7 {
+             abort();
+         }
+         if ctlz_nonzero(255u8) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u16.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u16.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u16.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u16.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,26 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0u16) != 16 {
+         abort();
+     }
+     if ctlz(1u16) != 15 {
+         abort();
+     }
+     if ctlz(0xFFFFu16) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u32.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u32.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u32.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u32.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,26 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0u32) != 32 {
+         abort();
+     }
+     if ctlz(1u32) != 31 {
+         abort();
+     }
+     if ctlz(0xFFFFFFFFu32) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u64.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u64.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u64.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u64.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,26 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0u64) != 64 {
+         abort();
+     }
+     if ctlz(1u64) != 63 {
+         abort();
+     }
+     if ctlz(!0u64) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u8.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u8.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/ctlz_u8.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/ctlz_u8.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,26 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn ctlz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     if ctlz(0u8) != 8 {
+         abort();
+     }
+     if ctlz(1u8) != 7 {
+         abort();
+     }
+     if ctlz(255u8) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/cttz.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/cttz.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/cttz.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/cttz.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,97 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn cttz<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     // cttz(0) must return bit_size per the Rust reference
+     if cttz(0u8) != 8 {
+         abort();
+     }
+     if cttz(1u8) != 0 {
+         abort();
+     }
+     if cttz(0xFFu8) != 0 {
+         abort();
+     }
+ 
+     if cttz(0u16) != 16 {
+         abort();
+     }
+     if cttz(1u16) != 0 {
+         abort();
+     }
+     if cttz(0xFFFFu16) != 0 {
+         abort();
+     }
+ 
+     if cttz(0u32) != 32 {
+         abort();
+     }
+     if cttz(1u32) != 0 {
+         abort();
+     }
+     if cttz(0xFFFFFFFFu32) != 0 {
+         abort();
+     }
+ 
+     if cttz(0u64) != 64 {
+         abort();
+     }
+     if cttz(1u64) != 0 {
+         abort();
+     }
+     if cttz(!0u64) != 0 {
+         abort();
+     }
+ 
+     if cttz(0i8) != 8 {
+         abort();
+     }
+     if cttz(1i8) != 0 {
+         abort();
+     }
+     if cttz(-1i8) != 0 {
+         abort();
+     }
+ 
+     if cttz(0i16) != 16 {
+         abort();
+     }
+     if cttz(1i16) != 0 {
+         abort();
+     }
+     if cttz(-1i16) != 0 {
+         abort();
+     }
+ 
+     if cttz(0i32) != 32 {
+         abort();
+     }
+     if cttz(1i32) != 0 {
+         abort();
+     }
+     if cttz(-1i32) != 0 {
+         abort();
+     }
+ 
+     if cttz(0i64) != 64 {
+         abort();
+     }
+     if cttz(1i64) != 0 {
+         abort();
+     }
+     if cttz(-1i64) != 0 {
+         abort();
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/testsuite/rust/execute/torture/cttz_nonzero.rs gcc-16-20260419/gcc/testsuite/rust/execute/torture/cttz_nonzero.rs
*** gcc-16-20260412/gcc/testsuite/rust/execute/torture/cttz_nonzero.rs	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/gcc/testsuite/rust/execute/torture/cttz_nonzero.rs	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,74 ----
+ #![feature(no_core)]
+ #![no_core]
+ #![feature(intrinsics)]
+ #![feature(lang_items)]
+ 
+ #[lang = "sized"]
+ pub trait Sized {}
+ 
+ extern "rust-intrinsic" {
+     pub fn cttz_nonzero<T>(x: T) -> u32;
+     pub fn abort() -> !;
+ }
+ 
+ fn main() -> i32 {
+     unsafe {
+         if cttz_nonzero(1u8) != 0 {
+             abort();
+         }
+         if cttz_nonzero(0xFFu8) != 0 {
+             abort();
+         }
+ 
+         if cttz_nonzero(1u16) != 0 {
+             abort();
+         }
+         if cttz_nonzero(0xFFFFu16) != 0 {
+             abort();
+         }
+ 
+         if cttz_nonzero(1u32) != 0 {
+             abort();
+         }
+         if cttz_nonzero(0xFFFFFFFFu32) != 0 {
+             abort();
+         }
+ 
+         if cttz_nonzero(1u64) != 0 {
+             abort();
+         }
+         if cttz_nonzero(!0u64) != 0 {
+             abort();
+         }
+ 
+         if cttz_nonzero(1i8) != 0 {
+             abort();
+         }
+         if cttz_nonzero(-1i8) != 0 {
+             abort();
+         }
+ 
+         if cttz_nonzero(1i16) != 0 {
+             abort();
+         }
+         if cttz_nonzero(-1i16) != 0 {
+             abort();
+         }
+ 
+         if cttz_nonzero(1i32) != 0 {
+             abort();
+         }
+         if cttz_nonzero(-1i32) != 0 {
+             abort();
+         }
+ 
+         if cttz_nonzero(1i64) != 0 {
+             abort();
+         }
+         if cttz_nonzero(-1i64) != 0 {
+             abort();
+         }
+     }
+ 
+     0
+ }
diff -Nrcpad gcc-16-20260412/gcc/tree-sra.cc gcc-16-20260419/gcc/tree-sra.cc
*** gcc-16-20260412/gcc/tree-sra.cc	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/tree-sra.cc	Sun Apr 19 22:32:18 2026
*************** path_comparable_for_same_access (tree ex
*** 2326,2331 ****
--- 2326,2336 ----
      {
        if (!zerop (TREE_OPERAND (expr, 1)))
  	return false;
+       gcc_assert (TREE_CODE (TREE_OPERAND (expr, 0)) == ADDR_EXPR
+ 		  && DECL_P (TREE_OPERAND (TREE_OPERAND (expr, 0), 0)));
+       if (TYPE_MAIN_VARIANT (TREE_TYPE (expr))
+ 	  != TYPE_MAIN_VARIANT (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (expr, 0), 0))))
+ 	return false;
      }
    else
      gcc_assert (DECL_P (expr));
diff -Nrcpad gcc-16-20260412/gcc/tree-ssa-pre.cc gcc-16-20260419/gcc/tree-ssa-pre.cc
*** gcc-16-20260412/gcc/tree-ssa-pre.cc	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/tree-ssa-pre.cc	Sun Apr 19 22:32:18 2026
*************** prefer (pre_expr a, pre_expr b)
*** 836,860 ****
  {
    if (a->kind == REFERENCE && b->kind == REFERENCE)
      {
!       auto &oprsa = PRE_EXPR_REFERENCE (a)->operands;
!       auto &oprsb = PRE_EXPR_REFERENCE (b)->operands;
        if (oprsa.length () > 1 && oprsb.length () > 1)
  	{
  	  vn_reference_op_t vroa = &oprsa[oprsa.length () - 2];
  	  vn_reference_op_t vrob = &oprsb[oprsb.length () - 2];
  	  if (vroa->opcode == MEM_REF && vrob->opcode == MEM_REF)
  	    {
- 	      pre_expr palign = NULL, psize = NULL;
  	      /* We have to canonicalize to the more conservative alignment.
  		 gcc.dg/torture/pr65270-?.c.*/
  	      if (TYPE_ALIGN (vroa->type) < TYPE_ALIGN (vrob->type))
  		palign = a;
  	      else if (TYPE_ALIGN (vroa->type) > TYPE_ALIGN (vrob->type))
  		palign = b;
  	      /* We have to canonicalize to the more conservative (smaller)
  		 innermost object access size.  gcc.dg/torture/pr110799.c.  */
  	      if (TYPE_SIZE (vroa->type) != TYPE_SIZE (vrob->type))
  		{
  		  if (!TYPE_SIZE (vroa->type))
  		    psize = a;
  		  else if (!TYPE_SIZE (vrob->type))
--- 836,892 ----
  {
    if (a->kind == REFERENCE && b->kind == REFERENCE)
      {
!       auto refa = PRE_EXPR_REFERENCE (a);
!       auto refb = PRE_EXPR_REFERENCE (b);
!       auto &oprsa = refa->operands;
!       auto &oprsb = refb->operands;
!       pre_expr palias = NULL;
!       if (refa->set == refb->set
! 	  && refa->base_set == refb->base_set)
! 	;
!       else if ((refb->set == refa->set
! 		|| alias_set_subset_of (refb->set, refa->set))
! 	       && (refb->base_set == refa->base_set
! 		   || alias_set_subset_of (refb->base_set, refa->base_set)))
! 	palias = a;
!       else if ((refa->set == refb->set
! 		|| alias_set_subset_of (refa->set, refb->set))
! 	       && (refa->base_set == refb->base_set
! 		   || alias_set_subset_of (refa->base_set, refb->base_set)))
! 	palias = b;
!       else
! 	/* We have to chose an expression representation that can stand
! 	   in for all others - there can be none, in which case we have
! 	   to drop this PRE/hoisting opportunity.
! 	   ???  Previously we've arranged for alias-set zero being used
! 	   as fallback, but we do not really want to allocate a new expression
! 	   here unless it proves to be absolutely necessary.  */
! 	return NULL;
!       pre_expr p = palias;
        if (oprsa.length () > 1 && oprsb.length () > 1)
  	{
  	  vn_reference_op_t vroa = &oprsa[oprsa.length () - 2];
  	  vn_reference_op_t vrob = &oprsb[oprsb.length () - 2];
  	  if (vroa->opcode == MEM_REF && vrob->opcode == MEM_REF)
  	    {
  	      /* We have to canonicalize to the more conservative alignment.
  		 gcc.dg/torture/pr65270-?.c.*/
+ 	      pre_expr palign = NULL;
  	      if (TYPE_ALIGN (vroa->type) < TYPE_ALIGN (vrob->type))
  		palign = a;
  	      else if (TYPE_ALIGN (vroa->type) > TYPE_ALIGN (vrob->type))
  		palign = b;
+ 	      if (palign)
+ 		{
+ 		  if (p && p != palign)
+ 		    return NULL;
+ 		  p = palign;
+ 		}
  	      /* We have to canonicalize to the more conservative (smaller)
  		 innermost object access size.  gcc.dg/torture/pr110799.c.  */
  	      if (TYPE_SIZE (vroa->type) != TYPE_SIZE (vrob->type))
  		{
+ 		  pre_expr psize = NULL;
  		  if (!TYPE_SIZE (vroa->type))
  		    psize = a;
  		  else if (!TYPE_SIZE (vrob->type))
*************** prefer (pre_expr a, pre_expr b)
*** 870,884 ****
  			psize = b;
  		    }
  		  /* ???  What about non-constant sizes?  */
  		}
- 	      if (palign && psize)
- 		return NULL;
- 	      /* Note we cannot leave it undecided because when having
- 		 more than two expressions we have to keep doing
- 		 pariwise reduction.  */
- 	      return palign ? palign : (psize ? psize : b);
  	    }
  	}
      }
    /* Always prefer an non-REFERENCE, avoiding the above mess.  */
    else if (a->kind == REFERENCE)
--- 902,920 ----
  			psize = b;
  		    }
  		  /* ???  What about non-constant sizes?  */
+ 		  if (psize)
+ 		    {
+ 		      if (p && p != psize)
+ 			return NULL;
+ 		      p = psize;
+ 		    }
  		}
  	    }
  	}
+       /* Note we cannot leave it undecided because when having
+ 	 more than two expressions we have to keep doing
+ 	 pariwise reduction.  */
+       return p ? p : b;
      }
    /* Always prefer an non-REFERENCE, avoiding the above mess.  */
    else if (a->kind == REFERENCE)
*************** sorted_array_from_bitmap_set (bitmap_set
*** 1028,1039 ****
  		    break;
  		for (k = j;; ++k)
  		  {
- 		    if (k == result.length () - 1
- 			|| result[k + 1]->value_id != result[i]->value_id)
- 		      break;
  		    if (result[k]->kind == REFERENCE)
  		      bitmap_set_bit (exclusions,
  				      get_expression_id (result[k]));
  		  }
  		i = k;
  	      }
--- 1064,1075 ----
  		    break;
  		for (k = j;; ++k)
  		  {
  		    if (result[k]->kind == REFERENCE)
  		      bitmap_set_bit (exclusions,
  				      get_expression_id (result[k]));
+ 		    if (k == result.length () - 1
+ 			|| result[k + 1]->value_id != result[i]->value_id)
+ 		      break;
  		  }
  		i = k;
  	      }
diff -Nrcpad gcc-16-20260412/gcc/tree-ssa-propagate.cc gcc-16-20260419/gcc/tree-ssa-propagate.cc
*** gcc-16-20260412/gcc/tree-ssa-propagate.cc	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/tree-ssa-propagate.cc	Sun Apr 19 22:32:18 2026
*************** substitute_and_fold_dom_walker::before_d
*** 860,865 ****
--- 860,866 ----
        /* If we made a replacement, fold the statement.  */
        if (did_replace)
  	{
+ 	  update_stmt (stmt);
  	  fold_stmt (&i, follow_single_use_edges);
  	  stmt = gsi_stmt (i);
  	  gimple_set_modified (stmt, true);
diff -Nrcpad gcc-16-20260412/gcc/value-relation.cc gcc-16-20260419/gcc/value-relation.cc
*** gcc-16-20260412/gcc/value-relation.cc	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/value-relation.cc	Sun Apr 19 22:32:18 2026
*************** equiv_oracle::equiv_oracle ()
*** 321,326 ****
--- 321,330 ----
    m_self_equiv.safe_grow_cleared (num_ssa_names + 1);
    m_partial.create (0);
    m_partial.safe_grow_cleared (num_ssa_names + 1);
+   // Create a bitmap to avoid registering multiple equivalences from a LHS.
+   // See PR 124809.
+   m_lhs_equiv_set_p = BITMAP_ALLOC (&m_bitmaps);
+   bitmap_tree_view (m_lhs_equiv_set_p);
  }
  
  // Destruct an equivalency oracle.
*************** relation_oracle::record (gimple *stmt, r
*** 1103,1108 ****
--- 1107,1120 ----
  	return false;
      }
  
+   // If the LHS of a statement has already been processed and an equivalence
+   // registered, do not register another one.  See PR 124809.
+   if (m_lhs_equiv_set_p && relation_equiv_p (k)
+       && gimple_get_lhs (stmt) == op1)
+     {
+       if (!bitmap_set_bit (m_lhs_equiv_set_p, SSA_NAME_VERSION (op1)))
+ 	return false;
+     }
    bool ret = record (gimple_bb (stmt), k, op1, op2);
  
    if (ret && dump_file && (dump_flags & TDF_DETAILS))
diff -Nrcpad gcc-16-20260412/gcc/value-relation.h gcc-16-20260419/gcc/value-relation.h
*** gcc-16-20260412/gcc/value-relation.h	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/gcc/value-relation.h	Sun Apr 19 22:32:18 2026
*************** void adjust_equivalence_range (vrange &r
*** 97,102 ****
--- 97,103 ----
  class relation_oracle
  {
  public:
+   relation_oracle () { m_lhs_equiv_set_p = NULL; }
    virtual ~relation_oracle () { }
  
    // register a relation between 2 ssa names.
*************** protected:
*** 128,133 ****
--- 129,136 ----
    virtual relation_kind query (basic_block, const_bitmap, const_bitmap)
      { return VREL_VARYING; }
    friend class path_oracle;
+   // Used to Avoid registering multiple eqiuvalences from the same statement.
+   bitmap m_lhs_equiv_set_p;
  };
  
  // Instance with no storage used for default queries with no active oracle.
diff -Nrcpad gcc-16-20260412/libgcc/ChangeLog gcc-16-20260419/libgcc/ChangeLog
*** gcc-16-20260412/libgcc/ChangeLog	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/libgcc/ChangeLog	Sun Apr 19 22:32:18 2026
***************
*** 1,3 ****
--- 1,16 ----
+ 2026-04-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/sfp-exceptions.c: New file.
+ 	* config/arm/sfp-machine.h: Define FP_HANDLE_EXCEPTIONS, FP_EX_*
+ 	MACROs, _FP_DECL_EX, FP_ROUNDMODE, FP_INIT_ROUNDMODE, FP_RND_* MACROs
+ 	and declare __sfp_handle_exceptions.
+ 	* config/arm/t-softfp: Add sfp-exceptions.c to LIB2ADD.
+ 
+ 2026-04-15  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* libgcov-driver-system.c (gcov_exit_open_gcda_file): Handle
+ 	potential NULL value from malloc.
+ 
  2026-03-30  Saurabh Jha  <saurabh.jha@arm.com>
  	    Evgeny Karpov  <evgeny.karpov@arm.com>
  
diff -Nrcpad gcc-16-20260412/libgcc/config/arm/sfp-exceptions.c gcc-16-20260419/libgcc/config/arm/sfp-exceptions.c
*** gcc-16-20260412/libgcc/config/arm/sfp-exceptions.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libgcc/config/arm/sfp-exceptions.c	Sun Apr 19 22:32:18 2026
***************
*** 0 ****
--- 1,52 ----
+ /*
+  * Copyright (C) 2026 Free Software Foundation, Inc.
+  *
+  * This file 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 file 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/>.
+  */
+ 
+ #if __ARM_FP
+ #include "sfp-machine.h"
+ 
+ /* _BitInt support for the arm port will use software emulation for conversions
+    to and from any floating point type to _BitInt.  These operations can throw
+    exceptions and to make sure the exception state is set correctly when
+    floating point hardware is available we execute floating point instructions
+    that we know will set the exception state according to the exception bits
+    set in _FEX.  */
+ 
+ void
+ __sfp_handle_exceptions (int _fex)
+ {
+   volatile float fp_max = __FLT_MAX__;
+   volatile float fp_min = __FLT_MIN__;
+   volatile float fp_1e32 = 1.0e32f;
+   volatile float fp_zero = 0.0;
+   volatile float fp_one = 1.0;
+ 
+   if ((_fex & FP_EX_INVALID) || (_fex & FP_EX_DIVZERO))
+     fp_zero = fp_zero / fp_zero;
+   if (_fex & FP_EX_OVERFLOW)
+     fp_1e32 += fp_max;
+   if (_fex & FP_EX_UNDERFLOW)
+     fp_min *= fp_min;
+   if (_fex & FP_EX_INEXACT)
+     fp_max -= fp_one;
+ }
+ #endif
diff -Nrcpad gcc-16-20260412/libgcc/config/arm/sfp-machine.h gcc-16-20260419/libgcc/config/arm/sfp-machine.h
*** gcc-16-20260412/libgcc/config/arm/sfp-machine.h	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/libgcc/config/arm/sfp-machine.h	Sun Apr 19 22:32:18 2026
***************
*** 7,12 ****
--- 7,42 ----
     match `__libgcc_cmp_return__' in GCC for the target.  */
  typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
  #define CMPtype __gcc_CMPtype
+ #if __ARM_FP
+ #define FP_EX_INVALID	0x01
+ #define FP_EX_DIVZERO	0x02
+ #define FP_EX_OVERFLOW	0x04
+ #define FP_EX_UNDERFLOW	0x08
+ #define FP_EX_INEXACT	0x10
+ void __sfp_handle_exceptions (int);
+ #define FP_HANDLE_EXCEPTIONS			\
+   do {						\
+     if (__builtin_expect (_fex, 0))		\
+       __sfp_handle_exceptions (_fex);		\
+   } while (0)
+ 
+ #define FP_RND_NEAREST		0x000000
+ #define FP_RND_PINF		0x400000
+ #define FP_RND_MINF		0x800000
+ #define FP_RND_ZERO		0xc00000
+ #define FP_RND_MASK		0xc00000
+ 
+ #define _FP_DECL_EX \
+   unsigned long int _fpcr __attribute__ ((unused)) = FP_RND_NEAREST
+ 
+ #define FP_INIT_ROUNDMODE			\
+   do {						\
+     _fpcr = __builtin_arm_get_fpscr ();		\
+   } while (0)
+ 
+ #define FP_ROUNDMODE (_fpcr & FP_RND_MASK)
+ #endif
+ 
  
  #define _FP_MUL_MEAT_S(R,X,Y)				\
    _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
diff -Nrcpad gcc-16-20260412/libgcc/config/arm/t-softfp gcc-16-20260419/libgcc/config/arm/t-softfp
*** gcc-16-20260412/libgcc/config/arm/t-softfp	Sun Apr 12 22:32:15 2026
--- gcc-16-20260419/libgcc/config/arm/t-softfp	Sun Apr 19 22:32:18 2026
*************** softfp_wrap_start := '\#if !__ARM_ARCH_I
*** 2,4 ****
--- 2,5 ----
  softfp_wrap_end := '\#endif'
  bitint_extras += floatbitinthf
  softfp_cflags := -mfp16-format=ieee
+ LIB2ADD += $(srcdir)/config/arm/sfp-exceptions.c
diff -Nrcpad gcc-16-20260412/libgcc/libgcov-driver-system.c gcc-16-20260419/libgcc/libgcov-driver-system.c
*** gcc-16-20260412/libgcc/libgcov-driver-system.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgcc/libgcov-driver-system.c	Sun Apr 19 22:32:18 2026
*************** gcov_exit_open_gcda_file (struct gcov_in
*** 301,306 ****
--- 301,311 ----
  
    size_t prefix_length = gf->prefix ? strlen (gf->prefix) : 0;
    gf->filename = (char *) xmalloc (prefix_length + strlen (fname) + 2);
+   if (!gf->filename)
+     {
+       fprintf (stderr, "profiling:Failed to allocate memory for filename");
+       return -1;
+     }
    *gf->filename = '\0';
    if (prefix_length)
      strcat (gf->filename, gf->prefix);
diff -Nrcpad gcc-16-20260412/libgfortran/ChangeLog gcc-16-20260419/libgfortran/ChangeLog
*** gcc-16-20260412/libgfortran/ChangeLog	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/ChangeLog	Sun Apr 19 22:32:18 2026
***************
*** 1,3 ****
--- 1,23 ----
+ 2026-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR libfortran/120431
+ 	* m4/spread.m4: Fix scalar source case with ncopies < 0.
+ 	* generated/spread_c10.c: Regenerated.
+ 	* generated/spread_c16.c: Ditto.
+ 	* generated/spread_c17.c: Ditto.
+ 	* generated/spread_c4.c: Ditto.
+ 	* generated/spread_c8.c: Ditto.
+ 	* generated/spread_i1.c: Ditto.
+ 	* generated/spread_i16.c: Ditto.
+ 	* generated/spread_i2.c: Ditto.
+ 	* generated/spread_i4.c: Ditto.
+ 	* generated/spread_i8.c: Ditto.
+ 	* generated/spread_r10.c: Ditto.
+ 	* generated/spread_r16.c: Ditto.
+ 	* generated/spread_r17.c: Ditto.
+ 	* generated/spread_r4.c: Ditto.
+ 	* generated/spread_r8.c: Ditto.
+ 
  2026-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  
  	PR libfortran/124543
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_c10.c gcc-16-20260419/libgfortran/generated/spread_c10.c
*** gcc-16-20260412/libgfortran/generated/spread_c10.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_c10.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_c10 (gfc_array_c10 *ret, c
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_10));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_COMPLEX_10));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_c16.c gcc-16-20260419/libgfortran/generated/spread_c16.c
*** gcc-16-20260412/libgfortran/generated/spread_c16.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_c16.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_c16 (gfc_array_c16 *ret, c
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_16));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_COMPLEX_16));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_c17.c gcc-16-20260419/libgfortran/generated/spread_c17.c
*** gcc-16-20260412/libgfortran/generated/spread_c17.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_c17.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_c17 (gfc_array_c17 *ret, c
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_17));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_COMPLEX_17));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_c4.c gcc-16-20260419/libgfortran/generated/spread_c4.c
*** gcc-16-20260412/libgfortran/generated/spread_c4.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_c4.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_c4 (gfc_array_c4 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_4));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_COMPLEX_4));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_c8.c gcc-16-20260419/libgfortran/generated/spread_c8.c
*** gcc-16-20260412/libgfortran/generated/spread_c8.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_c8.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_c8 (gfc_array_c8 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_8));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_COMPLEX_8));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_i1.c gcc-16-20260419/libgfortran/generated/spread_i1.c
*** gcc-16-20260412/libgfortran/generated/spread_i1.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_i1.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_i1 (gfc_array_i1 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_1));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_INTEGER_1));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_i16.c gcc-16-20260419/libgfortran/generated/spread_i16.c
*** gcc-16-20260412/libgfortran/generated/spread_i16.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_i16.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_i16 (gfc_array_i16 *ret, c
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_16));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_INTEGER_16));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_i2.c gcc-16-20260419/libgfortran/generated/spread_i2.c
*** gcc-16-20260412/libgfortran/generated/spread_i2.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_i2.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_i2 (gfc_array_i2 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_2));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_INTEGER_2));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_i4.c gcc-16-20260419/libgfortran/generated/spread_i4.c
*** gcc-16-20260412/libgfortran/generated/spread_i4.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_i4.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_i4 (gfc_array_i4 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_4));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_INTEGER_4));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_i8.c gcc-16-20260419/libgfortran/generated/spread_i8.c
*** gcc-16-20260412/libgfortran/generated/spread_i8.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_i8.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_i8 (gfc_array_i8 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_8));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_INTEGER_8));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_r10.c gcc-16-20260419/libgfortran/generated/spread_r10.c
*** gcc-16-20260412/libgfortran/generated/spread_r10.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_r10.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_r10 (gfc_array_r10 *ret, c
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_10));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_REAL_10));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_r16.c gcc-16-20260419/libgfortran/generated/spread_r16.c
*** gcc-16-20260412/libgfortran/generated/spread_r16.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_r16.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_r16 (gfc_array_r16 *ret, c
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_16));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_REAL_16));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_r17.c gcc-16-20260419/libgfortran/generated/spread_r17.c
*** gcc-16-20260412/libgfortran/generated/spread_r17.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_r17.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_r17 (gfc_array_r17 *ret, c
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_17));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_REAL_17));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_r4.c gcc-16-20260419/libgfortran/generated/spread_r4.c
*** gcc-16-20260412/libgfortran/generated/spread_r4.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_r4.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_r4 (gfc_array_r4 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_4));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_REAL_4));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/generated/spread_r8.c gcc-16-20260419/libgfortran/generated/spread_r8.c
*** gcc-16-20260412/libgfortran/generated/spread_r8.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/generated/spread_r8.c	Sun Apr 19 22:32:18 2026
*************** spread_scalar_r8 (gfc_array_r8 *ret, con
*** 243,249 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_8));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 243,250 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof (GFC_REAL_8));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgfortran/m4/spread.m4 gcc-16-20260419/libgfortran/m4/spread.m4
*** gcc-16-20260412/libgfortran/m4/spread.m4	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgfortran/m4/spread.m4	Sun Apr 19 22:32:18 2026
*************** spread_scalar_'rtype_code` ('rtype` *ret
*** 244,250 ****
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies, sizeof ('rtype_name`));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
--- 244,251 ----
  
    if (ret->base_addr == NULL)
      {
!       ret->base_addr = xmallocarray (ncopies > 0 ? ncopies : 0,
! 				     sizeof ('rtype_name`));
        ret->offset = 0;
        GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
      }
diff -Nrcpad gcc-16-20260412/libgomp/ChangeLog gcc-16-20260419/libgomp/ChangeLog
*** gcc-16-20260412/libgomp/ChangeLog	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgomp/ChangeLog	Sun Apr 19 22:32:19 2026
***************
*** 1,3 ****
--- 1,21 ----
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* testsuite/libgomp.c/declare-variant-3-sm50.c: New.
+ 	* testsuite/libgomp.c/declare-variant-3.h: Adjust.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR middle-end/95551
+ 	* testsuite/libgomp.fortran/target-var.f90: Rename to...
+ 	* testsuite/libgomp.fortran/pr95551-1.f90: ... this, and fix up the
+ 	OpenACC.
+ 	* testsuite/libgomp.oacc-fortran/pr95551-1.f90: New.
+ 
+ 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* testsuite/libgomp.c/omp_target_is_present.c (check_routines):
+ 	'omp_target_disassociate_ptr' after 'omp_target_associate_ptr'.
+ 
  2026-03-27  Tobias Burnus  <tburnus@baylibre.com>
  
  	* target.c (omp_target_is_present, omp_get_mapped_ptr): Update handling
diff -Nrcpad gcc-16-20260412/libgomp/testsuite/libgomp.c/declare-variant-3-sm50.c gcc-16-20260419/libgomp/testsuite/libgomp.c/declare-variant-3-sm50.c
*** gcc-16-20260412/libgomp/testsuite/libgomp.c/declare-variant-3-sm50.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libgomp/testsuite/libgomp.c/declare-variant-3-sm50.c	Sun Apr 19 22:32:19 2026
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do link { target { offload_target_nvptx } } } */
+ /* { dg-additional-options -Wno-deprecated-openmp } */
+ /* { dg-additional-options -foffload=nvptx-none } */
+ /* { dg-additional-options "-foffload=-misa=sm_50 -foffload=-mptx=_" } */
+ /* { dg-additional-options "-foffload=-fdump-tree-optimized" } */
+ 
+ #include "declare-variant-3.h"
+ 
+ /* { dg-final { only_for_offload_target nvptx-none scan-offload-tree-dump "= f50 \\(\\);" "optimized" } } */
diff -Nrcpad gcc-16-20260412/libgomp/testsuite/libgomp.c/declare-variant-3.h gcc-16-20260419/libgomp/testsuite/libgomp.c/declare-variant-3.h
*** gcc-16-20260412/libgomp/testsuite/libgomp.c/declare-variant-3.h	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgomp/testsuite/libgomp.c/declare-variant-3.h	Sun Apr 19 22:32:19 2026
*************** f37 (void)
*** 23,28 ****
--- 23,35 ----
  
  __attribute__ ((noipa))
  int
+ f50 (void)
+ {
+   return 50;
+ }
+ 
+ __attribute__ ((noipa))
+ int
  f52 (void)
  {
    return 52;
*************** f89 (void)
*** 73,78 ****
--- 80,86 ----
  #pragma omp declare variant (f30) match (device={isa("sm_30")})
  #pragma omp declare variant (f35) match (device={isa("sm_35")})
  #pragma omp declare variant (f37) match (device={isa("sm_37")})
+ #pragma omp declare variant (f50) match (device={isa("sm_50")})
  #pragma omp declare variant (f52) match (device={isa("sm_52")})
  #pragma omp declare variant (f53) match (device={isa("sm_53")})
  #pragma omp declare variant (f61) match (device={isa("sm_61")})
diff -Nrcpad gcc-16-20260412/libgomp/testsuite/libgomp.c/omp_target_is_present.c gcc-16-20260419/libgomp/testsuite/libgomp.c/omp_target_is_present.c
*** gcc-16-20260412/libgomp/testsuite/libgomp.c/omp_target_is_present.c	Sun Apr 12 22:32:16 2026
--- gcc-16-20260419/libgomp/testsuite/libgomp.c/omp_target_is_present.c	Sun Apr 19 22:32:19 2026
*************** void check_routines (int dev)
*** 180,185 ****
--- 180,188 ----
    else if (ptr2 == &gLocal || ptr2 == nullptr)
      __builtin_abort ();
  
+   if (!!omp_target_disassociate_ptr (&B, dev)
+       != (self_mapping || initial_dev || invalid_dev))
+     __builtin_abort ();
    if (!invalid_dev)
      {
        omp_target_free (ptr, dev);
diff -Nrcpad gcc-16-20260412/libgomp/testsuite/libgomp.fortran/pr95551-1.f90 gcc-16-20260419/libgomp/testsuite/libgomp.fortran/pr95551-1.f90
*** gcc-16-20260412/libgomp/testsuite/libgomp.fortran/pr95551-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libgomp/testsuite/libgomp.fortran/pr95551-1.f90	Sun Apr 19 22:32:19 2026
***************
*** 0 ****
--- 1,34 ----
+ ! { dg-additional-options "-O3" }
+ !
+ ! See also '../libgomp.oacc-fortran/pr95551-1.f90'.
+ !
+ ! With -O3 the static local variable A.10 generated for
+ ! the array constructor [-2, -4, ..., -20] is optimized
+ ! away - which has to be handled in the offload_vars table.
+ !
+ program main
+   implicit none (type, external)
+   integer :: j
+   integer, allocatable :: A(:)
+ 
+   A = [(3*j, j=1, 10)]
+   call bar (A)
+   deallocate (A)
+ contains
+   subroutine bar (array)
+     integer :: i
+     integer :: array(:)
+ 
+     !$omp target map(from:array)
+     !$acc kernels copyout(array)
+     array = [(-2*i, i = 1, size(array))]
+     !$omp do private(array)
+     !$acc loop gang private(array)
+     do i = 1, 10
+       array(i) = 9*i
+     end do
+     if (any (array /= [(-2*i, i = 1, 10)])) error stop 2
+     !$omp end target
+     !$acc end kernels
+   end subroutine bar
+ end
diff -Nrcpad gcc-16-20260412/libgomp/testsuite/libgomp.fortran/target-var.f90 gcc-16-20260419/libgomp/testsuite/libgomp.fortran/target-var.f90
*** gcc-16-20260412/libgomp/testsuite/libgomp.fortran/target-var.f90	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libgomp/testsuite/libgomp.fortran/target-var.f90	Thu Jan  1 00:00:00 1970
***************
*** 1,32 ****
- ! { dg-additional-options "-O3" }
- !
- ! With -O3 the static local variable A.10 generated for
- ! the array constructor [-2, -4, ..., -20] is optimized
- ! away - which has to be handled in the offload_vars table.
- !
- program main
-   implicit none (type, external)
-   integer :: j
-   integer, allocatable :: A(:)
- 
-   A = [(3*j, j=1, 10)]
-   call bar (A)
-   deallocate (A)
- contains
-   subroutine bar (array)
-     integer :: i
-     integer :: array(:)
- 
-     !$omp target map(from:array)
-     !$acc parallel copyout(array)
-     array = [(-2*i, i = 1, size(array))]
-     !$omp do private(array)
-     !$acc loop gang private(array)
-     do i = 1, 10
-       array(i) = 9*i
-     end do
-     if (any (array /= [(-2*i, i = 1, 10)])) error stop 2
-     !$omp end target
-     !$acc end parallel
-   end subroutine bar
- end
--- 0 ----
diff -Nrcpad gcc-16-20260412/libgomp/testsuite/libgomp.oacc-fortran/pr95551-1.f90 gcc-16-20260419/libgomp/testsuite/libgomp.oacc-fortran/pr95551-1.f90
*** gcc-16-20260412/libgomp/testsuite/libgomp.oacc-fortran/pr95551-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libgomp/testsuite/libgomp.oacc-fortran/pr95551-1.f90	Sun Apr 19 22:32:19 2026
***************
*** 0 ****
--- 1,4 ----
+ ! { dg-additional-options -O3 }
+ ! { dg-additional-options --param=openacc-kernels=decompose }
+ 
+ include '../libgomp.fortran/pr95551-1.f90'
diff -Nrcpad gcc-16-20260412/libphobos/ChangeLog gcc-16-20260419/libphobos/ChangeLog
*** gcc-16-20260412/libphobos/ChangeLog	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libphobos/ChangeLog	Sun Apr 19 22:32:19 2026
***************
*** 1,3 ****
--- 1,7 ----
+ 2026-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* libdruntime/MERGE: Merge upstream druntime e145b91245.
+ 
  2026-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR d/88150
diff -Nrcpad gcc-16-20260412/libphobos/libdruntime/MERGE gcc-16-20260419/libphobos/libdruntime/MERGE
*** gcc-16-20260412/libphobos/libdruntime/MERGE	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libphobos/libdruntime/MERGE	Sun Apr 19 22:32:19 2026
***************
*** 1,4 ****
! 662104f52607c175ecb80633bd261932aa004561
  
  The first line of this file holds the git revision number of the last
  merge done from the dlang/dmd repository.
--- 1,4 ----
! e145b9124523d1fecd55e0702003ef86947eb745
  
  The first line of this file holds the git revision number of the last
  merge done from the dlang/dmd repository.
diff -Nrcpad gcc-16-20260412/libphobos/libdruntime/core/sys/posix/signal.d gcc-16-20260419/libphobos/libdruntime/core/sys/posix/signal.d
*** gcc-16-20260412/libphobos/libdruntime/core/sys/posix/signal.d	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libphobos/libdruntime/core/sys/posix/signal.d	Sun Apr 19 22:32:19 2026
*************** version (linux)
*** 414,419 ****
--- 414,443 ----
          enum SIGUSR2    = 12;
          enum SIGURG     = 23;
      }
+     else version (Emscripten)
+     {
+         //SIGABRT (defined in core.stdc.signal)
+         enum SIGALRM    = 14;
+         enum SIGBUS     = 7;
+         enum SIGCHLD    = 17;
+         enum SIGCONT    = 18;
+         //SIGFPE (defined in core.stdc.signal)
+         enum SIGHUP     = 1;
+         //SIGILL (defined in core.stdc.signal)
+         //SIGINT (defined in core.stdc.signal)
+         enum SIGKILL    = 9;
+         enum SIGPIPE    = 13;
+         enum SIGQUIT    = 3;
+         //SIGSEGV (defined in core.stdc.signal)
+         enum SIGSTOP    = 19;
+         //SIGTERM (defined in core.stdc.signal)
+         enum SIGTSTP    = 20;
+         enum SIGTTIN    = 21;
+         enum SIGTTOU    = 22;
+         enum SIGUSR1    = 10;
+         enum SIGUSR2    = 12;
+         enum SIGURG     = 23;
+     }
      else
          static assert(0, "unimplemented");
  }
*************** version (linux)
*** 1784,1789 ****
--- 1808,1823 ----
          enum SIGXCPU    = 24;
          enum SIGXFSZ    = 25;
      }
+     else version (Emscripten)
+     {
+         enum SIGPOLL    = 29;
+         enum SIGPROF    = 27;
+         enum SIGSYS     = 31;
+         enum SIGTRAP    = 5;
+         enum SIGVTALRM  = 26;
+         enum SIGXCPU    = 24;
+         enum SIGXFSZ    = 25;
+     }
      else
          static assert(0, "unimplemented");
  
*************** else version (CRuntime_Musl)
*** 2767,2772 ****
--- 2801,2811 ----
      {
          enum MINSIGSTKSZ = 2048;
          enum SIGSTKSZ    = 8192;
+     }
+     else version (Emscripten)
+     {
+         enum MINSIGSTKSZ = 2048;
+         enum SIGSTKSZ    = 8192;
      }
      else
          static assert(0, "unimplemented");
diff -Nrcpad gcc-16-20260412/libphobos/libdruntime/gcc/attributes.d gcc-16-20260419/libphobos/libdruntime/gcc/attributes.d
*** gcc-16-20260412/libphobos/libdruntime/gcc/attributes.d	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libphobos/libdruntime/gcc/attributes.d	Sun Apr 19 22:32:19 2026
*************** auto allocSize(A...)(A arguments)
*** 629,634 ****
--- 629,637 ----
   */
  alias assumeUsed = used;
  
+ /// This attribute is ignored.
+ auto callingConvention(string) => false;
+ 
  /// This attribute has no effect.
  enum dynamicCompile = false;
  
*************** enum naked = attribute("naked");
*** 698,703 ****
--- 701,719 ----
  alias noSanitize = no_sanitize;
  
  /**
+  * Disables split-stack instrumentation for this function, overriding the
+  * `-fsplit-stack` commandline function.
+  *
+  * Examples:
+  * ---
+  * import gcc.attributes;
+  *
+  * @noSplitStack int user_function() { return 1; }
+  * ---
+  */
+ enum noSplitStack = attribute("no_split_stack");
+ 
+ /**
   * Sets the optimization strategy for a function.
   * Valid strategies are "none", "optsize", "minsize". The strategies are
   * mutually exclusive.
diff -Nrcpad gcc-16-20260412/libstdc++-v3/ChangeLog gcc-16-20260419/libstdc++-v3/ChangeLog
*** gcc-16-20260412/libstdc++-v3/ChangeLog	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/ChangeLog	Sun Apr 19 22:32:19 2026
***************
*** 1,3 ****
--- 1,211 ----
+ 2026-04-18  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124910
+ 	* include/std/optional (_Optional_payload_base::_M_destroy)
+ 	[__cpp_lib_optional >= 202106L]: During constant evaluation,
+ 	after invoking destructor of _M_value, use construct_at to
+ 	activate _M_empty.
+ 	* testsuite/20_util/optional/constexpr/124910.cc: New test.
+ 
+ 2026-04-17  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/124890
+ 	PR libstdc++/119714
+ 	PR libstdc++/112490
+ 	* include/bits/indirect.h (indirect::operator==): Replace
+ 	non-dependent std::indirect function parameter with a
+ 	dependent one of type indirect<_Vp> where _Vp matches _Tp.
+ 	* testsuite/std/memory/indirect/124890.cc: New test.
+ 
+ 2026-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
+ 	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Update.
+ 	* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
+ 
+ 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/print.h (_File_sink): Add comments.
+ 
+ 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124410
+ 	* doc/html/*: Regenerate.
+ 	* doc/xml/manual/using.xml (_GLIBCXX_NO_INLINE_PRINT): Document
+ 	macro.
+ 	* include/Makefile.am: Add bits/print.h and bits/ostream_print.h
+ 	headers.
+ 	* include/Makefile.in: Regenerate.
+ 	* include/std/ostream (vprint_nonunicode, vprint_unicode): Move
+ 	definitions to new bits/ostream_print.h header.
+ 	* include/std/print (__format::_File_sink, vprint_nonunicode)
+ 	(vprint_nonunicode_buffered, vprint_unicode)
+ 	(vprint_unicode_buffered): Move definitions to new bits/print.h
+ 	header.
+ 	* src/c++23/print.cc: Include new headers to define symbols for
+ 	inline print functions.
+ 	* include/bits/ostream_print.h: New file.
+ 	* include/bits/print.h: New file.
+ 
+ 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
+ 	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
+ 	Likewise.
+ 	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
+ 	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
+ 	Likewise.
+ 
+ 2026-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
+ 	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
+ 	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
+ 
+ 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/chrono: Improve Doxygen comments.
+ 
+ 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124268
+ 	* config/abi/pre/gnu.ver: Export symbols.
+ 	* src/Makefile.am: Add libmodulesconvenience.la to libstdc++
+ 	link.
+ 	* src/Makefile.in: Regenerate.
+ 	* src/c++23/Makefile.am: Create libmodulesconvenience.la
+ 	and populate it with std.o and std.compat.o interface units,
+ 	with empty fallback objects if compiling the interface units
+ 	fails. Add clean-local target.
+ 	* src/c++23/Makefile.in: Regenerate.
+ 
+ 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124540
+ 	* testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc:
+ 	Skip long double tests for IBM long double format.
+ 
+ 2026-04-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Exclude exports
+ 	of std::basic_fo* (matching basic_format_context).
+ 	(GLIBCXX_3.4.35): Export __format::__do_vformat_to
+ 	specializations for _Sink_iter and char/wchar_t.
+ 	* include/std/format: (__format::__do_vformat_to):
+ 	Extract overload accepting _Sink_iter and provide extern
+ 	explicit specialization for char/wchar_t in C++20 mode.
+ 	* src/c++20/Makefile.am: Add format-inst.cc.
+ 	* src/c++20/Makefile.in: Regenerate.
+ 	* src/c++20/format-inst.cc: New file defining explicit
+ 	instantiation.
+ 
+ 2026-04-15  Elena Tyuleneva  <elena.tyuleneva@intel.com>
+ 
+ 	* include/bits/random.tcc (philox_engine::_M_transtiion): Fix
+ 	counter increment to propagate carry correctly.
+ 	* testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc:
+ 	New test.
+ 
+ 2026-04-15  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/random.tcc (philox_engine::_M_transition): Cast
+ 	intermediate values to result_type for n=2 case.
+ 
+ 2026-04-15  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/bits/simd_vec.h (basic_vec deduction guide): Explicit
+ 	cast to simd-size-type from range size type.
+ 
+ 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* include/std/meta (define_static_object): Adjust for LWG4483 changes
+ 	- handle unions and arrays differently.
+ 
+ 2026-04-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (stdbit_h, stdckdint_h): Define.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/c_compatibility/stdbit.h (__cpp_lib_stdbit_h): Define
+ 	and use it in guards.
+ 	* include/c_compatibility/stdckdint.h (__cpp_lib_stdckdint_h):
+ 	Define and use it in guards.
+ 
+ 2026-04-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* testsuite/std/format/fill.cc: New test.
+ 	* testsuite/std/format/fill_nonunicode.cc: New test.
+ 
+ 2026-04-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* testsuite/20_util/constant_wrapper/generic.cc: Replace
+ 	std::std::invalid_argument with NegativeArgument and
+ 	removed <stdexcept> include.
+ 
+ 2026-04-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (constant_wrapped): Updated to 202603L.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/bits/utility.h (_CwOperators::operator())
+ 	(_CwOperators:operator[]): Delete, they are now provided by...
+ 	(constant_wrapper::operator(), constant_wrapper::operator[]):
+ 	Define.
+ 	* testsuite/20_util/constant_wrapper/generic.cc: Add additional
+ 	test cases for invoke and subscript.
+ 	* testsuite/20_util/constant_wrapper/version.cc: Update tested
+ 	value.
+ 
+ 2026-04-14  Matthias Wippich  <mfwippich@gmail.com>
+ 	    Ivan Lazaric  <ivan.lazaric1@gmail.com>
+ 
+ 	* include/bits/utility.h (std::tuple_size, std::tuple_element):
+ 	Add partial specializations for integer_sequence.
+ 	(std::get(integer_sequence<_Tp, _Idx...>)): Define.
+ 	* include/bits/version.def (integer_sequence): Bump to 202511L.
+ 	* include/bits/version.h: Regenerate.
+ 	* testsuite/20_util/integer_sequence/tuple_access.cc: New test.
+ 	* testsuite/20_util/integer_sequence/tuple_access_neg.cc: New test.
+ 	* testsuite/experimental/feat-cxx14.cc: Updated check for
+ 	__cpp_lib_integer_sequence value.
+ 
+ 2026-04-13  François Dumont  <frs.dumont@gmail.com>
+ 
+ 	* include/bits/hashtable.h: Replace usages of std::__addressof with
+ 	std::addressof.
+ 	* include/bits/hashtable_policy.h: Likewise.
+ 
+ 2026-04-13  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (replaceable_contract_violation_handler)
+ 	[(__cplusplus > 202302L) && (__cpp_contracts >= 202502L)]:
+ 	Define to 202603 for ELF targets, and 0 otherwise.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/contracts: Define
+ 	__cpp_lib_replaceable_contract_violation_handler.
+ 
+ 2026-04-13  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Remove _ZNKSs11_[MS]_*
+ 	and _ZNKSbIwSt11char_traitsIwESaIwEE11_[MS]_* patterns.
+ 
+ 2026-04-13  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (function_ref): Bump to 202603L.
+ 	* include/bits/version.h: Regenerate.
+ 	* testsuite/20_util/function_ref/assign.cc: Remove repeated
+ 	check for feature test macro.
+ 	* testsuite/20_util/function_ref/cons.cc: Updated checked
+ 	value.
+ 
  2026-04-10  Patrick Palka  <ppalka@redhat.com>
  
  	* include/std/ranges (lazy_split_view::begin): Add
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4224,4229 ****
--- 4286,4292 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4585,4590 ****
--- 4648,4654 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4623,4628 ****
--- 4687,4693 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt10moneypunctIwLb1EE8groupingE
*** 475,480 ****
--- 500,506 ----
  FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc@@GLIBCXX_3.4
+ FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPPKc@@GLIBCXX_3.4.30
  FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCXX_3.4
*************** FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc
*** 485,490 ****
--- 511,517 ----
  FUNC:_ZNKSt11__timepunctIcE8_M_am_pmEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw@@GLIBCXX_3.4
+ FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPPKw@@GLIBCXX_3.4.30
  FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCXX_3.4
*************** FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw
*** 495,501 ****
--- 522,534 ----
  FUNC:_ZNKSt11__timepunctIwE8_M_am_pmEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12bad_weak_ptr4whatEv@@GLIBCXX_3.4.15
  FUNC:_ZNKSt12future_error4whatEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 529,534 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@
*** 666,671 ****
--- 700,712 ----
  FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4
+ FUNC:_ZNKSt6chrono4tzdb11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt6chrono4tzdb12current_zoneEv@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt6chrono9time_zone15_M_get_sys_infoENS_10time_pointINS_3_V212system_clockENS_8durationIxSt5ratioILx1ELx1EEEEEE@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt6chrono9time_zone17_M_get_local_infoENS_10time_pointINS_7local_tENS_8durationIxSt5ratioILx1ELx1EEEEEE@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt6chrono9tzdb_list14const_iteratordeEv@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt6chrono9tzdb_list5beginEv@@GLIBCXX_3.4.31
+ FUNC:_ZNKSt6chrono9tzdb_list5frontEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6locale2id5_M_idEv@@GLIBCXX_3.4
  FUNC:_ZNKSt6locale4nameB5cxx11Ev@@GLIBCXX_3.4.21
  FUNC:_ZNKSt6locale4nameEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 744,749 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 801,810 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 862,867 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKSt7__cxx118time_getIcSt19istrea
*** 954,959 ****
--- 1007,1013 ----
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSD_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx118time_getIwSt19istrea
*** 973,978 ****
--- 1027,1033 ----
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSD_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt8time_getIcSt19istreambuf_ite
*** 1225,1230 ****
--- 1280,1286 ----
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4
+ FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.14
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSC_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.26
*************** FUNC:_ZNKSt8time_getIwSt19istreambuf_ite
*** 1244,1249 ****
--- 1300,1306 ----
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4
+ FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.14
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSC_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.26
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1447,1452 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1464,1469 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1712,1717 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1729,1734 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2088,2093 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt12__shared_ptrINSt10filesystem
*** 2106,2111 ****
--- 2174,2183 ----
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS5_@@GLIBCXX_3.4.26
+ FUNC:_ZNSt12__sso_stringC1Ev@@GLIBCXX_3.4.34
+ FUNC:_ZNSt12__sso_stringC2Ev@@GLIBCXX_3.4.34
+ FUNC:_ZNSt12__sso_stringD1Ev@@GLIBCXX_3.4.34
+ FUNC:_ZNSt12__sso_stringD2Ev@@GLIBCXX_3.4.34
  FUNC:_ZNSt12bad_weak_ptrD0Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12bad_weak_ptrD1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12bad_weak_ptrD2Ev@@GLIBCXX_3.4.15
*************** FUNC:_ZNSt16__numpunct_cacheIwEC2Ej@@GLI
*** 2818,2823 ****
--- 2890,2896 ----
  FUNC:_ZNSt16__numpunct_cacheIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt16__time_get_state17_M_finalize_stateEP2tm@@GLIBCXX_3.4.30
  FUNC:_ZNSt16bad_array_lengthD0Ev@@CXXABI_1.3.8
  FUNC:_ZNSt16bad_array_lengthD1Ev@@CXXABI_1.3.8
  FUNC:_ZNSt16bad_array_lengthD2Ev@@CXXABI_1.3.8
*************** FUNC:_ZNSt18basic_stringstreamIwSt11char
*** 2928,2934 ****
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18condition_variable10notify_allEv@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variable10notify_oneEv@@GLIBCXX_3.4.11
! FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableC1Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableC2Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableD1Ev@@GLIBCXX_3.4.11
--- 3001,3008 ----
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18condition_variable10notify_allEv@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variable10notify_oneEv@@GLIBCXX_3.4.11
! FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@@GLIBCXX_3.4.30
! FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableC1Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableC2Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableD1Ev@@GLIBCXX_3.4.11
*************** FUNC:_ZNSt6__norm15_List_node_base7_M_ho
*** 3087,3095 ****
--- 3161,3180 ----
  FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
  FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
  FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
+ FUNC:_ZNSt6chrono11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono11reload_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono12current_zoneEv@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+ FUNC:_ZNSt6chrono13get_tzdb_listEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono14remote_versionB5cxx11Ev@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
+ FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
  FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
  FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
  FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3186,3196 ****
--- 3271,3284 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_S_compareEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_capacityEj@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_S_allocateERS3_j@@GLIBCXX_3.4.32
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEjc@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb0EEEvPKcj@@GLIBCXX_3.4.34
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb1EEEvPKcj@@GLIBCXX_3.4.34
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvT_SA_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3205,3210 ****
--- 3293,3299 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcS5_S5_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13shrink_to_fitEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE14_M_replace_auxEjjjc@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_replace_coldEPcjPKcjj@@GLIBCXX_3.4.31
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE18_M_construct_aux_2Ejc@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3300,3305 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3317,3322 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3337,3347 ****
--- 3428,3441 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_replaceEjjPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_capacityEj@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_S_allocateERS3_j@@GLIBCXX_3.4.32
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructEjw@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructILb0EEEvPKwj@@GLIBCXX_3.4.34
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructILb1EEEvPKwj@@GLIBCXX_3.4.34
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKwS4_EEEEvT_SB_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvT_SA_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPKwEEvT_S8_St20forward_iterator_tag@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3356,3361 ****
--- 3450,3456 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS5_S5_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13shrink_to_fitEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_replace_coldEPwjPKwjj@@GLIBCXX_3.4.31
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE18_M_construct_aux_2Ejw@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3451,3456 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3468,3473 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3903,3913 ****
--- 4000,4018 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
+ FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8bad_castD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8bad_castD2Ev@@GLIBCXX_3.4
*************** FUNC:_ZNSt9type_infoD1Ev@@GLIBCXX_3.4
*** 4100,4105 ****
--- 4205,4211 ----
  FUNC:_ZNSt9type_infoD2Ev@@GLIBCXX_3.4
  FUNC:_ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order@@GLIBCXX_3.4.11
  FUNC:_ZNVSt9__atomic011atomic_flag5clearESt12memory_order@@GLIBCXX_3.4.11
+ FUNC:_ZSt10from_charsPKcS0_RDF128_St12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt10from_charsPKcS0_RdSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt10from_charsPKcS0_ReSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt10from_charsPKcS0_RfSt12chars_format@@GLIBCXX_3.4.29
*************** FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12
*** 4113,4118 ****
--- 4219,4268 ----
  FUNC:_ZSt14get_unexpectedv@@GLIBCXX_3.4.20
  FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCXX_3.4
  FUNC:_ZSt15_Fnv_hash_bytesPKvjj@@CXXABI_1.3.5
+ FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb0EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb1EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb0EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb1EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb0EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb1EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb0EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb1EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt11__timepunctIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt11__timepunctIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt5ctypeIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt5ctypeIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7codecvtIcc11__mbstate_tEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7codecvtIwc11__mbstate_tEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7collateIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7collateIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8messagesIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8messagesIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8numpunctIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8numpunctIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
+ FUNC:_ZSt15__try_use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15future_categoryv@@GLIBCXX_3.4.15
  FUNC:_ZSt15get_new_handlerv@@GLIBCXX_3.4.20
  FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4137,4142 ****
--- 4287,4293 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** FUNC:_ZSt20__throw_future_errori@@GLIBCX
*** 4150,4161 ****
--- 4301,4318 ----
  FUNC:_ZSt20__throw_length_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCXX_3.4
  FUNC:_ZSt20__throw_system_errori@@GLIBCXX_3.4.11
+ FUNC:_ZSt20__to_chars_float16_tPcS_fSt12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
  FUNC:_ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb@@GLIBCXX_3.4.9
  FUNC:_ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb@@GLIBCXX_3.4.9
+ FUNC:_ZSt21__glibcxx_assert_failPKciS0_S0_@@GLIBCXX_3.4.30
  FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCXX_3.4
  FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCXX_3.4
+ FUNC:_ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format@@GLIBCXX_3.4.31
+ FUNC:_ZSt21ios_base_library_initv@@GLIBCXX_3.4.32
+ FUNC:_ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCXX_3.4
+ FUNC:_ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCXX_3.4
  FUNC:_ZSt24__throw_out_of_range_fmtPKcz@@GLIBCXX_3.4.20
*************** FUNC:_ZSt7getlineIwSt11char_traitsIwESaI
*** 4180,4185 ****
--- 4337,4345 ----
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@@GLIBCXX_3.4.21
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
+ FUNC:_ZSt8to_charsPcS_DF128_@@GLIBCXX_3.4.31
+ FUNC:_ZSt8to_charsPcS_DF128_St12chars_format@@GLIBCXX_3.4.31
+ FUNC:_ZSt8to_charsPcS_DF128_St12chars_formati@@GLIBCXX_3.4.31
  FUNC:_ZSt8to_charsPcS_d@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_dSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_dSt12chars_formati@@GLIBCXX_3.4.29
*************** FUNC:__cxa_allocate_exception@@CXXABI_1.
*** 4447,4452 ****
--- 4607,4613 ----
  FUNC:__cxa_bad_cast@@CXXABI_1.3
  FUNC:__cxa_bad_typeid@@CXXABI_1.3
  FUNC:__cxa_begin_catch@@CXXABI_1.3
+ FUNC:__cxa_call_terminate@@CXXABI_1.3.15
  FUNC:__cxa_call_unexpected@@CXXABI_1.3
  FUNC:__cxa_current_exception_type@@CXXABI_1.3
  FUNC:__cxa_deleted_virtual@@CXXABI_1.3.6
*************** OBJECT:0:CXXABI_1.3.10
*** 4489,4494 ****
--- 4650,4658 ----
  OBJECT:0:CXXABI_1.3.11
  OBJECT:0:CXXABI_1.3.12
  OBJECT:0:CXXABI_1.3.13
+ OBJECT:0:CXXABI_1.3.14
+ OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.27
*** 4523,4528 ****
--- 4687,4698 ----
  OBJECT:0:GLIBCXX_3.4.28
  OBJECT:0:GLIBCXX_3.4.29
  OBJECT:0:GLIBCXX_3.4.3
+ OBJECT:0:GLIBCXX_3.4.30
+ OBJECT:0:GLIBCXX_3.4.31
+ OBJECT:0:GLIBCXX_3.4.32
+ OBJECT:0:GLIBCXX_3.4.33
+ OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
*************** OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.
*** 4705,4710 ****
--- 4875,4887 ----
  OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
  OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
  OBJECT:16:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
+ OBJECT:16:_ZTIPDF128_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPDF16_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPDF16b@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPDF32_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPDF32x@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPDF64_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPDF64x@@CXXABI_1.3.14
  OBJECT:16:_ZTIPDd@@CXXABI_1.3.4
  OBJECT:16:_ZTIPDe@@CXXABI_1.3.4
  OBJECT:16:_ZTIPDf@@CXXABI_1.3.4
*************** OBJECT:16:_ZTIPDi@@CXXABI_1.3.3
*** 4712,4717 ****
--- 4889,4901 ----
  OBJECT:16:_ZTIPDn@@CXXABI_1.3.5
  OBJECT:16:_ZTIPDs@@CXXABI_1.3.3
  OBJECT:16:_ZTIPDu@@CXXABI_1.3.12
+ OBJECT:16:_ZTIPKDF128_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPKDF16_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPKDF16b@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPKDF32_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPKDF32x@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPKDF64_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIPKDF64x@@CXXABI_1.3.14
  OBJECT:16:_ZTIPKDd@@CXXABI_1.3.4
  OBJECT:16:_ZTIPKDe@@CXXABI_1.3.4
  OBJECT:16:_ZTIPKDf@@CXXABI_1.3.4
*************** OBJECT:8:_ZGVNSt9money_getIcSt19istreamb
*** 5860,5865 ****
--- 6044,6056 ----
  OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
+ OBJECT:8:_ZTIDF128_@@CXXABI_1.3.14
+ OBJECT:8:_ZTIDF16_@@CXXABI_1.3.14
+ OBJECT:8:_ZTIDF16b@@CXXABI_1.3.14
+ OBJECT:8:_ZTIDF32_@@CXXABI_1.3.14
+ OBJECT:8:_ZTIDF32x@@CXXABI_1.3.14
+ OBJECT:8:_ZTIDF64_@@CXXABI_1.3.14
+ OBJECT:8:_ZTIDF64x@@CXXABI_1.3.14
  OBJECT:8:_ZTIDd@@CXXABI_1.3.4
  OBJECT:8:_ZTIDe@@CXXABI_1.3.4
  OBJECT:8:_ZTIDf@@CXXABI_1.3.4
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__cxxabiv129__pointer_to_membe
*** 98,105 ****
--- 100,109 ----
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 107,113 ****
--- 111,119 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 194,199 ****
--- 200,212 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_istringstrea
*** 203,208 ****
--- 216,224 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 263,274 ****
--- 279,296 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 329,334 ****
--- 351,359 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 490,495 ****
--- 515,521 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 521,526 ****
--- 547,553 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 743,748 ****
--- 770,778 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 800,809 ****
--- 830,845 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 861,866 ****
--- 897,905 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1446,1451 ****
--- 1485,1491 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1463,1468 ****
--- 1503,1509 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1705,1710 ****
--- 1746,1752 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1722,1727 ****
--- 1764,1770 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP14_pthrea
*** 2077,2082 ****
--- 2120,2132 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP14_pthread_mutex@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3081,3086 ****
--- 3131,3138 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3298,3303 ****
--- 3350,3356 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3315,3320 ****
--- 3368,3374 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3453,3458 ****
--- 3507,3513 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3470,3475 ****
--- 3525,3531 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3905,3915 ****
--- 3961,3977 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4183,4188 ****
--- 4245,4251 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4543,4548 ****
--- 4606,4612 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4582,4587 ****
--- 4646,4652 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__cxxabiv129__pointer_to_membe
*** 98,105 ****
--- 100,109 ----
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 107,113 ****
--- 111,119 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 194,199 ****
--- 200,212 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_istringstrea
*** 203,208 ****
--- 216,224 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 263,274 ****
--- 279,296 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 329,334 ****
--- 351,359 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 490,495 ****
--- 515,521 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 521,526 ****
--- 547,553 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 743,748 ****
--- 770,778 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 800,809 ****
--- 830,845 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 861,866 ****
--- 897,905 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1446,1451 ****
--- 1485,1491 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1463,1468 ****
--- 1503,1509 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1705,1710 ****
--- 1746,1752 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1722,1727 ****
--- 1764,1770 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP14_pthrea
*** 2077,2082 ****
--- 2120,2132 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP14_pthread_mutex@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3081,3086 ****
--- 3131,3138 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3298,3303 ****
--- 3350,3356 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3315,3320 ****
--- 3368,3374 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3453,3458 ****
--- 3507,3513 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3470,3475 ****
--- 3525,3531 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3905,3915 ****
--- 3961,3977 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4183,4188 ****
--- 4245,4251 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4543,4548 ****
--- 4606,4612 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4582,4587 ****
--- 4646,4652 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4225,4230 ****
--- 4287,4293 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4589,4594 ****
--- 4652,4658 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4628,4633 ****
--- 4692,4698 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4225,4230 ****
--- 4287,4293 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4589,4594 ****
--- 4652,4658 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4628,4633 ****
--- 4692,4698 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4224,4229 ****
--- 4286,4292 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4585,4590 ****
--- 4648,4654 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4623,4628 ****
--- 4687,4693 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 900,905 ****
--- 927,935 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 957,966 ****
--- 987,1002 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 1018,1023 ****
--- 1054,1062 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1607,1612 ****
--- 1646,1652 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1624,1629 ****
--- 1664,1670 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1876,1881 ****
--- 1917,1923 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1893,1898 ****
--- 1935,1941 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2252,2257 ****
--- 2295,2307 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3310,3315 ****
--- 3360,3367 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3527,3532 ****
--- 3579,3585 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3544,3549 ****
--- 3597,3603 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3682,3687 ****
--- 3736,3742 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3699,3704 ****
--- 3754,3760 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 4134,4144 ****
--- 4190,4206 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4424,4429 ****
--- 4486,4492 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4830,4835 ****
--- 4893,4899 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4869,4874 ****
--- 4933,4939 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 900,905 ****
--- 927,935 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 957,966 ****
--- 987,1002 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 1018,1023 ****
--- 1054,1062 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1607,1612 ****
--- 1646,1652 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1624,1629 ****
--- 1664,1670 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1876,1881 ****
--- 1917,1923 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1893,1898 ****
--- 1935,1941 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2252,2257 ****
--- 2295,2307 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3310,3315 ****
--- 3360,3367 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3527,3532 ****
--- 3579,3585 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3544,3549 ****
--- 3597,3603 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3682,3687 ****
--- 3736,3742 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3699,3704 ****
--- 3754,3760 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 4134,4144 ****
--- 4190,4206 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4424,4429 ****
--- 4486,4492 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4830,4835 ****
--- 4893,4899 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4869,4874 ****
--- 4933,4939 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 900,905 ****
--- 927,935 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 957,966 ****
--- 987,1002 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 1018,1023 ****
--- 1054,1062 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1607,1612 ****
--- 1646,1652 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1624,1629 ****
--- 1664,1670 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1876,1881 ****
--- 1917,1923 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1893,1898 ****
--- 1935,1941 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2252,2257 ****
--- 2295,2307 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3310,3315 ****
--- 3360,3367 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3527,3532 ****
--- 3579,3585 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3544,3549 ****
--- 3597,3603 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3682,3687 ****
--- 3736,3742 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3699,3704 ****
--- 3754,3760 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 4134,4144 ****
--- 4190,4206 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4424,4429 ****
--- 4486,4492 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4830,4835 ****
--- 4893,4899 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4869,4874 ****
--- 4933,4939 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 1042,1047 ****
--- 1069,1077 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 1099,1108 ****
--- 1129,1144 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 1160,1165 ****
--- 1196,1204 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1749,1754 ****
--- 1788,1794 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1766,1771 ****
--- 1806,1812 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 2022,2027 ****
--- 2063,2069 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 2039,2044 ****
--- 2081,2087 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2398,2403 ****
--- 2441,2453 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3481,3486 ****
--- 3531,3538 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3698,3703 ****
--- 3750,3756 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3715,3720 ****
--- 3768,3774 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3853,3858 ****
--- 3907,3913 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3870,3875 ****
--- 3925,3931 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 4305,4315 ****
--- 4361,4377 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4606,4611 ****
--- 4668,4674 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 5038,5043 ****
--- 5101,5107 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 5078,5083 ****
--- 5142,5148 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE1EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE1EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4224,4229 ****
--- 4286,4292 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.13
*** 4586,4591 ****
--- 4649,4655 ----
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
  OBJECT:0:CXXABI_1.3.16
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4624,4629 ****
--- 4688,4694 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 900,905 ****
--- 927,935 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 957,966 ****
--- 987,1002 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 1018,1023 ****
--- 1054,1062 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1607,1612 ****
--- 1646,1652 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1624,1629 ****
--- 1664,1670 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1876,1881 ****
--- 1917,1923 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1893,1898 ****
--- 1935,1941 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2252,2257 ****
--- 2295,2307 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3310,3315 ****
--- 3360,3367 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3527,3532 ****
--- 3579,3585 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3544,3549 ****
--- 3597,3603 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3682,3687 ****
--- 3736,3742 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3699,3704 ****
--- 3754,3760 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 4134,4144 ****
--- 4190,4206 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4424,4429 ****
--- 4486,4492 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4830,4835 ****
--- 4893,4899 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4869,4874 ****
--- 4933,4939 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
*************** OBJECT:15:_ZTSSt8messagesIwE@@GLIBCXX_3.
*** 4951,4956 ****
--- 5016,5022 ----
  OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
  OBJECT:16:_ZTIDF128_@@CXXABI_1.3.14
+ OBJECT:16:_ZTIDF16_@@CXXABI_1.3.17
  OBJECT:16:_ZTIDF32_@@CXXABI_1.3.14
  OBJECT:16:_ZTIDF32x@@CXXABI_1.3.14
  OBJECT:16:_ZTIDF64_@@CXXABI_1.3.14
*************** OBJECT:30:_ZTSSt7codecvtIDsDu11__mbstate
*** 5615,5620 ****
--- 5681,5687 ----
  OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
  OBJECT:32:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
  OBJECT:32:_ZTIPDF128_@@CXXABI_1.3.14
+ OBJECT:32:_ZTIPDF16_@@CXXABI_1.3.17
  OBJECT:32:_ZTIPDF32_@@CXXABI_1.3.14
  OBJECT:32:_ZTIPDF32x@@CXXABI_1.3.14
  OBJECT:32:_ZTIPDF64_@@CXXABI_1.3.14
*************** OBJECT:32:_ZTIPDn@@CXXABI_1.3.5
*** 5627,5632 ****
--- 5694,5700 ----
  OBJECT:32:_ZTIPDs@@CXXABI_1.3.3
  OBJECT:32:_ZTIPDu@@CXXABI_1.3.12
  OBJECT:32:_ZTIPKDF128_@@CXXABI_1.3.14
+ OBJECT:32:_ZTIPKDF16_@@CXXABI_1.3.17
  OBJECT:32:_ZTIPKDF32_@@CXXABI_1.3.14
  OBJECT:32:_ZTIPKDF32x@@CXXABI_1.3.14
  OBJECT:32:_ZTIPKDF64_@@CXXABI_1.3.14
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__cxxabiv129__pointer_to_membe
*** 98,105 ****
--- 100,109 ----
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 107,113 ****
--- 111,119 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 194,199 ****
--- 200,212 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_istringstrea
*** 203,208 ****
--- 216,224 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 263,274 ****
--- 279,296 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 329,334 ****
--- 351,359 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 490,495 ****
--- 515,521 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 521,526 ****
--- 547,553 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 743,748 ****
--- 770,778 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 800,809 ****
--- 830,845 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 861,866 ****
--- 897,905 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1446,1451 ****
--- 1485,1491 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1463,1468 ****
--- 1503,1509 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1705,1710 ****
--- 1746,1752 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1722,1727 ****
--- 1764,1770 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP14_pthrea
*** 2077,2082 ****
--- 2120,2132 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP14_pthread_mutex@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3081,3086 ****
--- 3131,3138 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3298,3303 ****
--- 3350,3356 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3315,3320 ****
--- 3368,3374 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3453,3458 ****
--- 3507,3513 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3470,3475 ****
--- 3525,3531 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3905,3915 ****
--- 3961,3977 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4183,4188 ****
--- 4245,4251 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4543,4548 ****
--- 4606,4612 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4581,4586 ****
--- 4645,4651 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__cxxabiv129__pointer_to_membe
*** 98,105 ****
--- 100,109 ----
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 107,113 ****
--- 111,119 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 194,199 ****
--- 200,212 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_istringstrea
*** 203,208 ****
--- 216,224 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 263,274 ****
--- 279,296 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 329,334 ****
--- 351,359 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 490,495 ****
--- 515,521 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 521,526 ****
--- 547,553 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 743,748 ****
--- 770,778 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 800,809 ****
--- 830,845 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 861,866 ****
--- 897,905 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1446,1451 ****
--- 1485,1491 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1463,1468 ****
--- 1503,1509 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1705,1710 ****
--- 1746,1752 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1722,1727 ****
--- 1764,1770 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP14_pthrea
*** 2077,2082 ****
--- 2120,2132 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP14_pthread_mutex@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3081,3086 ****
--- 3131,3138 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3298,3303 ****
--- 3350,3356 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3315,3320 ****
--- 3368,3374 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3453,3458 ****
--- 3507,3513 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3470,3475 ****
--- 3525,3531 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3905,3915 ****
--- 3961,3977 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4183,4188 ****
--- 4245,4251 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4543,4548 ****
--- 4606,4612 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4581,4586 ****
--- 4645,4651 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4224,4229 ****
--- 4286,4292 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4585,4590 ****
--- 4648,4654 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4623,4628 ****
--- 4687,4693 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4224,4229 ****
--- 4286,4292 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4585,4590 ****
--- 4648,4654 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4623,4628 ****
--- 4687,4693 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4225,4230 ****
--- 4287,4293 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4589,4594 ****
--- 4652,4658 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4628,4633 ****
--- 4692,4698 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEmm@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEm@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcm@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4225,4230 ****
--- 4287,4293 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4589,4594 ****
--- 4652,4658 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4628,4633 ****
--- 4692,4698 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt gcc-16-20260419/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
*** gcc-16-20260412/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt	Sun Apr 19 22:32:20 2026
***************
*** 1,3 ****
--- 1,5 ----
+ FUNC:_ZGIW3std@@GLIBCXX_3.4.35
+ FUNC:_ZGIW3stdW6compat@@GLIBCXX_3.4.35
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
*************** FUNC:_ZN10__gnu_norm15_List_node_base6un
*** 103,110 ****
--- 105,114 ----
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
+ FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPKNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
*************** FUNC:_ZN11__gnu_debug19_Safe_sequence_ba
*** 112,118 ****
--- 116,124 ----
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
+ FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPKNS_30_Safe_unordered_container_baseEb@@GLIBCXX_3.4.35
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
*************** FUNC:_ZNK11__gnu_debug16_Error_formatter
*** 199,204 ****
--- 205,217 ----
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug19_Safe_sequence_base7_M_swapERKS0_@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.35
+ FUNC:_ZNK11__gnu_debug30_Safe_unordered_container_base7_M_swapERKS0_@@GLIBCXX_3.4.35
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNKRSt7__cxx1119basic_ostringstrea
*** 209,214 ****
--- 222,230 ----
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
*************** FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M
*** 270,275 ****
--- 286,294 ----
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
*** 277,282 ****
--- 296,304 ----
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
+ FUNC:_ZNKSs11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
*************** FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
*** 338,343 ****
--- 360,368 ----
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
+ FUNC:_ZNKSs9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.35
+ FUNC:_ZNKSs9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
*************** FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPP
*** 499,504 ****
--- 524,530 ----
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
+ FUNC:_ZNKSt12__cow_string5c_strEv@@GLIBCXX_3.4.35
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNKSt14error_category10equivalentE
*** 536,541 ****
--- 562,568 ----
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
+ FUNC:_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info@@CXXABI_1.3.17
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
*************** FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16
*** 758,763 ****
--- 785,793 ----
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11starts_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIcSt11c
*** 815,824 ****
--- 845,860 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9ends_withEc@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11starts_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
*************** FUNC:_ZNKSt7__cxx1112basic_stringIwSt11c
*** 876,881 ****
--- 912,920 ----
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEPKw@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9ends_withEw@@GLIBCXX_3.4.35
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ER
*** 1465,1470 ****
--- 1504,1510 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ER
*** 1482,1487 ****
--- 1522,1528 ----
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
*************** FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1730,1735 ****
--- 1771,1777 ----
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
*** 1747,1752 ****
--- 1789,1795 ----
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSsC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
*************** FUNC:_ZNSt12__basic_fileIcEC1EP15pthread
*** 2106,2111 ****
--- 2149,2161 ----
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt12__cow_stringC2EOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKc@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2EPKcj@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringC2ERKS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringD2Ev@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSEOS_@@GLIBCXX_3.4.35
+ FUNC:_ZNSt12__cow_stringaSERKS_@@GLIBCXX_3.4.35
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
*************** FUNC:_ZNSt6chrono14remote_versionB5cxx11
*** 3120,3125 ****
--- 3170,3177 ----
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
+ FUNC:_ZNSt6chrono9gps_clock3nowEv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt6chrono9tai_clock3nowEv@@GLIBCXX_3.4.35
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3337,3342 ****
--- 3389,3395 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIcSt11ch
*** 3354,3359 ****
--- 3407,3413 ----
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3492,3497 ****
--- 3546,3552 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7__cxx1112basic_stringIwSt11ch
*** 3509,3514 ****
--- 3564,3570 ----
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
+ FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EvQ26is_default_constructible_vIT1_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
*************** FUNC:_ZNSt7num_putIwSt19ostreambuf_itera
*** 3944,3954 ****
--- 4000,4016 ----
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
+ FUNC:_ZNSt8__detail11__wait_args19_M_setup_proxy_waitEPKv@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
+ FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIcLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
+ FUNC:_ZNSt8__format15__do_vformat_toIwLj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
  FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
*************** FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_t
*** 4225,4230 ****
--- 4287,4293 ----
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
+ FUNC:_ZSt19__syncbuf_get_mutexPv@@GLIBCXX_3.4.35
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
*************** OBJECT:0:CXXABI_1.3.12
*** 4589,4594 ****
--- 4652,4658 ----
  OBJECT:0:CXXABI_1.3.13
  OBJECT:0:CXXABI_1.3.14
  OBJECT:0:CXXABI_1.3.15
+ OBJECT:0:CXXABI_1.3.17
  OBJECT:0:CXXABI_1.3.2
  OBJECT:0:CXXABI_1.3.3
  OBJECT:0:CXXABI_1.3.4
*************** OBJECT:0:GLIBCXX_3.4.31
*** 4628,4633 ****
--- 4692,4698 ----
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.33
  OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
diff -Nrcpad gcc-16-20260412/libstdc++-v3/config/abi/pre/gnu.ver gcc-16-20260419/libstdc++-v3/config/abi/pre/gnu.ver
*** gcc-16-20260412/libstdc++-v3/config/abi/pre/gnu.ver	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/config/abi/pre/gnu.ver	Sun Apr 19 22:32:20 2026
*************** GLIBCXX_3.4 {
*** 34,40 ****
        std::basic_[a-e]*;
        std::basic_f[a-h]*;
  #     std::basic_filebuf;
!       std::basic_f[j-r]*;
  #     std::basic_fstream;
        std::basic_f[t-z]*;
        std::basic_[g-h]*;
--- 34,42 ----
        std::basic_[a-e]*;
        std::basic_f[a-h]*;
  #     std::basic_filebuf;
!       std::basic_f[j-n]*;
! #     std::basic_format_context;
!       std::basic_f[p-r]*;
  #     std::basic_fstream;
        std::basic_f[t-z]*;
        std::basic_[g-h]*;
*************** GLIBCXX_3.4 {
*** 270,276 ****
      _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*;
--- 272,277 ----
*************** GLIBCXX_3.4 {
*** 343,349 ****
      _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]*;
--- 344,349 ----
*************** GLIBCXX_3.4.35 {
*** 2608,2618 ****
--- 2608,2626 ----
      _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;
  
+     # __format::__do_vformat_to<char, 1>(_Sink_iter<char>, string_view, format_context&);
+     # __format::__do_vformat_to<wchar_t, 1>(_Sink_iter<wchar_t>, wstring_view, format_context&);
+     _ZNSt8__format15__do_vformat_toI[cw]Lj1EEENS_10_Sink_iterIT_EES3_St17basic_string_viewIS2_St11char_traitsIS2_EERSt20basic_format_contextIS3_S2_E;
+ 
  #if defined (_WIN32) && !defined (__CYGWIN__)
      _ZSt19__get_once_callablev;
      _ZSt15__get_once_callv;
  #endif
  
+     # Module inititialization symbols for std and std.compat modules.
+     _ZGIW3std;
+     _ZGIW3stdW6compat;
+ 
  } GLIBCXX_3.4.34;
  
  # Symbols in the support library (libsupc++) have their own tag.
diff -Nrcpad gcc-16-20260412/libstdc++-v3/doc/html/index.html gcc-16-20260419/libstdc++-v3/doc/html/index.html
*** gcc-16-20260412/libstdc++-v3/doc/html/index.html	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/doc/html/index.html	Sun Apr 19 22:32:20 2026
***************
*** 1,6 ****
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="description" content="Short Contents Copyright (C) 2008-2025 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
!       Copyright (C) 2008-2025
        <a class="link" href="https://www.fsf.org" target="_top">FSF
        </a>
      </p><p>
--- 1,6 ----
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="description" content="Short Contents Copyright (C) 2008-2026 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
!       Copyright (C) 2008-2026
        <a class="link" href="https://www.fsf.org" target="_top">FSF
        </a>
      </p><p>
diff -Nrcpad gcc-16-20260412/libstdc++-v3/doc/html/manual/using.html gcc-16-20260419/libstdc++-v3/doc/html/manual/using.html
*** gcc-16-20260412/libstdc++-v3/doc/html/manual/using.html	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/doc/html/manual/using.html	Sun Apr 19 22:32:20 2026
***************
*** 34,39 ****
--- 34,41 ----
          is required for use of experimental C++ library features.
          This currently provides support for the C++23 types defined in the
          <code class="filename">&lt;stacktrace&gt;</code> header,
+ 	the C++23 functions defined in the
+ 	<code class="filename">&lt;print&gt;</code> header,
          the Filesystem library extensions defined in the
          <code class="filename">&lt;experimental/filesystem&gt;</code>
          header,
diff -Nrcpad gcc-16-20260412/libstdc++-v3/doc/html/manual/using_macros.html gcc-16-20260419/libstdc++-v3/doc/html/manual/using_macros.html
*** gcc-16-20260412/libstdc++-v3/doc/html/manual/using_macros.html	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/doc/html/manual/using_macros.html	Sun Apr 19 22:32:20 2026
***************
*** 147,150 ****
--- 147,159 ----
  	mode will revert to the non-conforming implementation used prior to the
  	<a class="link" href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112591" target="_top">PR112591</a>
  	in GCC-16. Has no impact for C++20 or later modes.
+       </p></dd><dt><span class="term"><code class="code">_GLIBCXX_NO_INLINE_PRINT</code></span></dt><dd><p>
+ 	Undefined by default. When defined <code class="code">std::print</code> and
+ 	<code class="code">std::println</code> are not implemented using inline functions.
+ 	This means that code using those functions will compile faster,
+ 	but <code class="option">-lstdc++exp</code> must be used when linking.
+ 	The non-inline definitions are compiled using
+ 	<code class="option">-fexec-charset=UTF-8</code> so might give incorrect results
+ 	if called from a source file that uses a non-Unicode encoding,
+ 	especially for format strings using non-ASCII fill characters.
        </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dual_abi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Dual ABI</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-16-20260412/libstdc++-v3/doc/xml/manual/using.xml gcc-16-20260419/libstdc++-v3/doc/xml/manual/using.xml
*** gcc-16-20260412/libstdc++-v3/doc/xml/manual/using.xml	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/doc/xml/manual/using.xml	Sun Apr 19 22:32:20 2026
***************
*** 83,88 ****
--- 83,90 ----
          is required for use of experimental C++ library features.
          This currently provides support for the C++23 types defined in the
          <filename class="headerfile">&lt;stacktrace&gt;</filename> header,
+ 	the C++23 functions defined in the
+ 	<filename class="headerfile">&lt;print&gt;</filename> header,
          the Filesystem library extensions defined in the
          <filename class="headerfile">&lt;experimental/filesystem&gt;</filename>
          header,
*************** g++ -Winvalid-pch -I. -include stdc++.h
*** 1363,1368 ****
--- 1365,1383 ----
  	in GCC-16. Has no impact for C++20 or later modes.
        </para>
      </listitem></varlistentry>
+     <varlistentry><term><code>_GLIBCXX_NO_INLINE_PRINT</code></term>
+     <listitem>
+       <para>
+ 	Undefined by default. When defined <code>std::print</code> and
+ 	<code>std::println</code> are not implemented using inline functions.
+ 	This means that code using those functions will compile faster,
+ 	but <option>-lstdc++exp</option> must be used when linking.
+ 	The non-inline definitions are compiled using
+ 	<option>-fexec-charset=UTF-8</option> so might give incorrect results
+ 	if called from a source file that uses a non-Unicode encoding,
+ 	especially for format strings using non-ASCII fill characters.
+       </para>
+     </listitem></varlistentry>
      </variablelist>
  
    </section>
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/Makefile.am gcc-16-20260419/libstdc++-v3/include/Makefile.am
*** gcc-16-20260412/libstdc++-v3/include/Makefile.am	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/Makefile.am	Sun Apr 19 22:32:20 2026
*************** bits_headers = \
*** 244,250 ****
--- 244,252 ----
  	${bits_srcdir}/node_handle.h \
  	${bits_srcdir}/ostream.tcc \
  	${bits_srcdir}/ostream_insert.h \
+ 	${bits_srcdir}/ostream_print.h \
  	${bits_srcdir}/postypes.h \
+ 	${bits_srcdir}/print.h \
  	${bits_srcdir}/quoted_string.h \
  	${bits_srcdir}/random.h \
  	${bits_srcdir}/random.tcc \
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/Makefile.in gcc-16-20260419/libstdc++-v3/include/Makefile.in
*** gcc-16-20260412/libstdc++-v3/include/Makefile.in	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/Makefile.in	Sun Apr 19 22:32:20 2026
*************** bits_freestanding = \
*** 600,606 ****
--- 600,608 ----
  @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/node_handle.h \
  @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/ostream.tcc \
  @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/ostream_insert.h \
+ @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/ostream_print.h \
  @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/postypes.h \
+ @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/print.h \
  @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/quoted_string.h \
  @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/random.h \
  @GLIBCXX_HOSTED_TRUE@	${bits_srcdir}/random.tcc \
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/hashtable.h gcc-16-20260419/libstdc++-v3/include/bits/hashtable.h
*** gcc-16-20260412/libstdc++-v3/include/bits/hashtable.h	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/hashtable.h	Sun Apr 19 22:32:20 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1716,1722 ****
  	       _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::
      _M_move_assign(_Hashtable&& __ht, true_type)
      {
!       if (__builtin_expect(std::__addressof(__ht) == this, false))
  	return;
  
        this->_M_deallocate_nodes(_M_begin());
--- 1716,1722 ----
  	       _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::
      _M_move_assign(_Hashtable&& __ht, true_type)
      {
!       if (__builtin_expect(std::addressof(__ht) == this, false))
  	return;
  
        this->_M_deallocate_nodes(_M_begin());
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2345,2351 ****
  	    if constexpr (__is_key_type<_Args...>)
  	      {
  		const auto& __key = _ExtractKey{}(__args...);
! 		__kp = std::__addressof(__key);
  	      }
  	  }
  	else if constexpr (sizeof...(_Args) == 2)
--- 2345,2351 ----
  	    if constexpr (__is_key_type<_Args...>)
  	      {
  		const auto& __key = _ExtractKey{}(__args...);
! 		__kp = std::addressof(__key);
  	      }
  	  }
  	else if constexpr (sizeof...(_Args) == 2)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2354,2360 ****
  	      {
  		pair<const _Args&...> __refs(__args...);
  		const auto& __key = _ExtractKey{}(__refs);
! 		__kp = std::__addressof(__key);
  	      }
  	  }
  
--- 2354,2360 ----
  	      {
  		pair<const _Args&...> __refs(__args...);
  		const auto& __key = _ExtractKey{}(__refs);
! 		__kp = std::addressof(__key);
  	      }
  	  }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2368,2374 ****
  	    __node._M_node
  		  = this->_M_allocate_node(std::forward<_Args>(__args)...);
  	    const key_type& __key = _ExtractKey{}(__node._M_node->_M_v());
! 	    __kp = std::__addressof(__key);
  	  }
  
  	if (auto __loc = _M_locate(*__kp))
--- 2368,2374 ----
  	    __node._M_node
  		  = this->_M_allocate_node(std::forward<_Args>(__args)...);
  	    const key_type& __key = _ExtractKey{}(__node._M_node->_M_v());
! 	    __kp = std::addressof(__key);
  	  }
  
  	if (auto __loc = _M_locate(*__kp))
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/hashtable_policy.h gcc-16-20260419/libstdc++-v3/include/bits/hashtable_policy.h
*** gcc-16-20260412/libstdc++-v3/include/bits/hashtable_policy.h	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/hashtable_policy.h	Sun Apr 19 22:32:20 2026
*************** namespace __detail
*** 777,783 ****
        typename _RehashPolicy::_State _M_prev_state;
  
        _RehashStateGuard(_RehashPolicy& __policy)
!       : _M_guarded_obj(std::__addressof(__policy))
        , _M_prev_state(__policy._M_state())
        { }
        _RehashStateGuard(const _RehashStateGuard&) = delete;
--- 777,783 ----
        typename _RehashPolicy::_State _M_prev_state;
  
        _RehashStateGuard(_RehashPolicy& __policy)
!       : _M_guarded_obj(std::addressof(__policy))
        , _M_prev_state(__policy._M_state())
        { }
        _RehashStateGuard(const _RehashStateGuard&) = delete;
*************** namespace __detail
*** 1252,1258 ****
  
        void
        _M_init(const _Hash& __h)
!       { std::_Construct(std::__addressof(__hash_obj_storage::_M_u._M_h), __h); }
  
        void
        _M_destroy() { __hash_obj_storage::_M_u._M_h.~_Hash(); }
--- 1252,1258 ----
  
        void
        _M_init(const _Hash& __h)
!       { std::_Construct(std::addressof(__hash_obj_storage::_M_u._M_h), __h); }
  
        void
        _M_destroy() { __hash_obj_storage::_M_u._M_h.~_Hash(); }
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/indirect.h gcc-16-20260419/libstdc++-v3/include/bits/indirect.h
*** gcc-16-20260412/libstdc++-v3/include/bits/indirect.h	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/indirect.h	Sun Apr 19 22:32:20 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 344,354 ****
  	    return __lhs.__get() == __rhs.__get();
  	}
  
!       template<typename _Up>
  	requires (!__is_indirect<_Up>) // See PR c++/99599
  	  && requires (const _Tp& __t, const _Up& __u) { __t == __u; }
  	friend constexpr bool
! 	operator==(const indirect& __lhs, const _Up& __rhs)
  	noexcept(noexcept(*__lhs == __rhs))
  	{
  	  if (!__lhs._M_objp)
--- 344,354 ----
  	    return __lhs.__get() == __rhs.__get();
  	}
  
!       template<typename _Up, same_as<_Tp> _Vp>
  	requires (!__is_indirect<_Up>) // See PR c++/99599
  	  && requires (const _Tp& __t, const _Up& __u) { __t == __u; }
  	friend constexpr bool
! 	operator==(const indirect<_Vp, _Alloc>& __lhs, const _Up& __rhs)
  	noexcept(noexcept(*__lhs == __rhs))
  	{
  	  if (!__lhs._M_objp)
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/ostream_print.h gcc-16-20260419/libstdc++-v3/include/bits/ostream_print.h
*** gcc-16-20260412/libstdc++-v3/include/bits/ostream_print.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/include/bits/ostream_print.h	Sun Apr 19 22:32:20 2026
***************
*** 0 ****
--- 1,161 ----
+ // Inline implementation details for std::print functions -*- C++ -*-
+ 
+ // Copyright The GNU Toolchain Authors.
+ //
+ // 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/>.
+ 
+ /** @file include/bits/ostream_print.h
+  *  This is an internal header file, included by other library headers.
+  *  Do not attempt to use it directly. @headername{ostream}
+  *
+  *  This file contains the parts of `<ostream>` which are currently defined
+  *  inline, but should be moved into the library eventually.
+  */
+ 
+ #ifndef _GLIBCXX_OSTREAM_PRINT_H
+ #define _GLIBCXX_OSTREAM_PRINT_H 1
+ 
+ #ifdef _GLIBCXX_SYSHDR
+ #pragma GCC system_header
+ #endif
+ 
+ #include <bits/requires_hosted.h> // for std::format
+ 
+ #include <bits/version.h>
+ 
+ #ifdef __glibcxx_print // C++ >= 23
+ #include <format>
+ 
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+ #ifdef _GLIBCXX_NO_INLINE_PRINT
+ # define _GLIBCXX_PRINT_INLINE_USED [[__gnu__::__used__]]
+ #else
+ # define _GLIBCXX_PRINT_INLINE_USED
+ #endif
+ 
+   _GLIBCXX_PRINT_INLINE_USED
+   inline void
+   vprint_nonunicode(ostream& __os, string_view __fmt, format_args __args)
+   {
+     ostream::sentry __cerb(__os);
+     if (__cerb)
+       {
+ 	__format::_Str_sink<char> __buf;
+ 	std::vformat_to(__buf.out(), __os.getloc(), __fmt, __args);
+ 	auto __out = __buf.view();
+ 
+ 	__try
+ 	  {
+ 	    std::__ostream_write(__os, __out.data(), __out.size());
+ 	  }
+ 	__catch(const __cxxabiv1::__forced_unwind&)
+ 	  {
+ 	    __os._M_setstate(ios_base::badbit);
+ 	    __throw_exception_again;
+ 	  }
+ 	__catch(...)
+ 	  { __os._M_setstate(ios_base::badbit); }
+       }
+   }
+ 
+   _GLIBCXX_PRINT_INLINE_USED
+   inline void
+   vprint_unicode(ostream& __os, string_view __fmt, format_args __args)
+   {
+ #if !defined(_WIN32) || defined(__CYGWIN__)
+     // For most targets we don't need to do anything special to write
+     // Unicode to a terminal.
+     std::vprint_nonunicode(__os, __fmt, __args);
+ #else
+     ostream::sentry __cerb(__os);
+     if (__cerb)
+       {
+ 	__format::_Str_sink<char> __buf;
+ 	std::vformat_to(__buf.out(), __os.getloc(), __fmt, __args);
+ 	auto __out = __buf._M_span();
+ 
+ 	void* __open_terminal(streambuf*);
+ 	error_code __write_to_terminal(void*, span<char>);
+ 	// If stream refers to a terminal, write a Unicode string to it.
+ 	if (auto __term = __open_terminal(__os.rdbuf()))
+ 	  {
+ #if !defined(_WIN32) || defined(__CYGWIN__)
+ 	    // For POSIX, __open_terminal(streambuf*) uses fdopen to open a
+ 	    // new file, so we would need to close it here. This code is not
+ 	    // actually compiled because it's inside an #ifdef _WIN32 group,
+ 	    // but just in case that changes in future ...
+ 	    struct _Guard
+ 	    {
+ 	      _Guard(void* __p) : _M_f((FILE*)__p) { }
+ 	      ~_Guard() { std::fclose(_M_f); }
+ 	      _Guard(_Guard&&) = delete;
+ 	      _Guard& operator=(_Guard&&) = delete;
+ 	      FILE* _M_f;
+ 	    };
+ 	    _Guard __g(__term);
+ #endif
+ 
+ 	    ios_base::iostate __err = ios_base::goodbit;
+ 	    __try
+ 	      {
+ 		if (__os.rdbuf()->pubsync() == -1)
+ 		  __err = ios::badbit;
+ 		else if (auto __e = __write_to_terminal(__term, __out))
+ 		  if (__e != std::make_error_code(errc::illegal_byte_sequence))
+ 		    __err = ios::badbit;
+ 	      }
+ 	    __catch(const __cxxabiv1::__forced_unwind&)
+ 	      {
+ 		__os._M_setstate(ios_base::badbit);
+ 		__throw_exception_again;
+ 	      }
+ 	    __catch(...)
+ 	      { __os._M_setstate(ios_base::badbit); }
+ 
+ 	    if (__err)
+ 	      __os.setstate(__err);
+ 	    return;
+ 	  }
+ 
+ 	// Otherwise just insert the string as vprint_nonunicode does.
+ 	__try
+ 	  {
+ 	    std::__ostream_write(__os, __out.data(), __out.size());
+ 	  }
+ 	__catch(const __cxxabiv1::__forced_unwind&)
+ 	  {
+ 	    __os._M_setstate(ios_base::badbit);
+ 	    __throw_exception_again;
+ 	  }
+ 	__catch(...)
+ 	  { __os._M_setstate(ios_base::badbit); }
+       }
+ #endif // _WIN32
+   }
+ #undef _GLIBCXX_PRINT_INLINE_USED
+ 
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace std
+ #endif // __glibcxx_print
+ #endif // _GLIBCXX_OSTREAM_PRINT_H
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/print.h gcc-16-20260419/libstdc++-v3/include/bits/print.h
*** gcc-16-20260412/libstdc++-v3/include/bits/print.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/include/bits/print.h	Sun Apr 19 22:32:20 2026
***************
*** 0 ****
--- 1,349 ----
+ // Inline implementation details for std::print functions -*- C++ -*-
+ 
+ // Copyright The GNU Toolchain Authors.
+ //
+ // 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/>.
+ 
+ /** @file include/bits/print.h
+  *  This is an internal header file, included by other library headers.
+  *  Do not attempt to use it directly. @headername{print}
+  *
+  *  This file contains the parts of `<print>` which are currently defined
+  *  inline, but should be moved into the library eventually.
+  */
+ 
+ #ifndef _GLIBCXX_PRINT_H
+ #define _GLIBCXX_PRINT_H 1
+ 
+ #ifdef _GLIBCXX_SYSHDR
+ #pragma GCC system_header
+ #endif
+ 
+ #include <bits/requires_hosted.h> // for std::format
+ 
+ #include <bits/version.h>
+ 
+ #ifdef __glibcxx_print // C++ >= 23
+ 
+ #include <format>
+ #include <cstdio>             // FILE, EOF, flockfile, etc.
+ #include <cerrno>             // EACCES, EIO
+ #include <bits/functexcept.h> // __throw_system_error
+ 
+ #ifdef _WIN32
+ # include <system_error> // system_error
+ #endif
+ 
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+ namespace __format
+ {
+ #if _GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLBC_STDIO_EXT
+   // These are defined in <stdio_ext.h> but we don't want to include that.
+   extern "C" int __fwritable(FILE*) noexcept;
+   extern "C" int __flbf(FILE*) noexcept;
+   extern "C" size_t __fbufsize(FILE*) noexcept;
+ 
+   // A format sink that writes directly to a Glibc FILE.
+   // The file is locked on construction and its buffer is accessed directly.
+   class _File_sink final : _Buf_sink<char>
+   {
+     struct _File
+     {
+       explicit
+       _File(FILE* __f) : _M_file(__f)
+       {
+ 	::flockfile(__f);
+ 	// Ensure stream is in write mode
+ 	if (!__fwritable(__f))
+ 	  {
+ 	    ::funlockfile(__f);
+ 	    __throw_system_error(EACCES);
+ 	  }
+ 	// Allocate buffer if needed:
+ 	if (_M_write_buf().empty())
+ 	  if (::__overflow(__f, EOF) == EOF)
+ 	    {
+ 	      const int __err = errno;
+ 	      ::funlockfile(__f);
+ 	      __throw_system_error(__err);
+ 	    }
+       }
+ 
+       ~_File() { ::funlockfile(_M_file); }
+ 
+       _File(_File&&) = delete;
+ 
+       // A span viewing the unused portion of the stream's output buffer.
+       std::span<char>
+       _M_write_buf() noexcept
+       {
+ 	return {_M_file->_IO_write_ptr,
+ 		size_t(_M_file->_IO_buf_end - _M_file->_IO_write_ptr)};
+       }
+ 
+       // Flush the output buffer to the file so we can write to it again.
+       void
+       _M_flush()
+       {
+ 	if (::fflush_unlocked(_M_file))
+ 	  __throw_system_error(errno);
+       }
+ 
+       // Update the current position in the output buffer.
+       // __n is the number of characters written to the _M_write_buf() span,
+       // so will not exceed the size of the output buffer.
+       void
+       _M_bump(size_t __n) noexcept
+       { _M_file->_IO_write_ptr += __n; }
+ 
+       bool
+       _M_line_buffered() const noexcept
+       { return __flbf(_M_file); } // Or: _M_file->_flags & 0x200
+ 
+       bool
+       _M_unbuffered() const noexcept
+       { return __fbufsize(_M_file) == 1; } // Or: _M_file->_flags & 0x2
+ 
+       FILE* _M_file;
+     } _M_file;
+ 
+     bool _M_add_newline; // True for std::println, false for std::print.
+ 
+     // Flush the stream's put area so it can be refilled.
+     void
+     _M_overflow() override
+     {
+       auto __s = this->_M_used();
+       if (__s.data() == this->_M_buf)
+ 	{
+ 	  // Characters in internal buffer need to be transferred to the FILE.
+ 	  auto __n = ::fwrite_unlocked(__s.data(), 1, __s.size(),
+ 				       _M_file._M_file);
+ 	  if (__n != __s.size())
+ 	    __throw_system_error(errno);
+ 	  this->_M_reset(this->_M_buf);
+ 	}
+       else
+ 	{
+ 	  // Characters were written directly to the FILE's output buffer.
+ 	  _M_file._M_bump(__s.size());
+ 	  _M_file._M_flush();
+ 	  this->_M_reset(_M_file._M_write_buf());
+ 	}
+     }
+ 
+   public:
+     _File_sink(FILE* __f, bool __add_newline)
+     : _M_file(__f), _M_add_newline(__add_newline)
+     {
+       if (!_M_file._M_unbuffered())
+ 	// Write directly to the FILE's output buffer.
+ 	this->_M_reset(_M_file._M_write_buf());
+     }
+ 
+     // This calls I/O functions which are cancellation points, so they
+     // could exit with a __forced_unwind exception. The noexcept(false)
+     // allows that to propagate instead of terminating the process.
+     ~_File_sink() noexcept(false)
+     {
+       auto __s = this->_M_used();
+       if (__s.data() == this->_M_buf) // Unbuffered stream
+ 	{
+ 	  _File_sink::_M_overflow(); // Transfer _M_buf to stream.
+ 	  if (_M_add_newline)
+ 	    ::putc_unlocked('\n', _M_file._M_file);
+ 	}
+       else
+ 	{
+ 	  _M_file._M_bump(__s.size());
+ 	  if (_M_add_newline)
+ 	    ::putc_unlocked('\n', _M_file._M_file); // '\n' triggers a flush
+ 	  else if (_M_file._M_line_buffered() && __s.size()
+ 		     && (__s.back() == '\n'
+ 			   || __builtin_memchr(__s.data(), '\n', __s.size())))
+ 	    _M_file._M_flush();
+ 	}
+     }
+ 
+     using _Sink<char>::out;
+   };
+ #elif _GLIBCXX_USE_STDIO_LOCKING
+   // A format sink that buffers output and then copies it to a stdio FILE.
+   // The file is locked on construction and written to using fwrite_unlocked.
+   class _File_sink final : _Buf_sink<char>
+   {
+     struct _File // RAII type to lock/unlock the file.
+     {
+       explicit _File(FILE* __f) : _M_file(__f) { ::flockfile(_M_file); }
+       ~_File() { ::funlockfile(_M_file); }
+       FILE* _M_file;
+     } _M_file;
+ 
+     bool _M_add_newline;
+ 
+     // Transfer buffer contents to the FILE, so buffer can be refilled.
+     void
+     _M_overflow() override
+     {
+       auto __s = this->_M_used();
+ #if _GLIBCXX_HAVE_FWRITE_UNLOCKED
+       auto __n = ::fwrite_unlocked(__s.data(), 1, __s.size(), _M_file._M_file);
+       if (__n != __s.size())
+ 	__throw_system_error(errno);
+ #else
+       for (char __c : __s)
+ 	::putc_unlocked(__c, _M_file._M_file);
+       if (::ferror(_M_file._M_file))
+ 	__throw_system_error(errno);
+ #endif
+       this->_M_reset(this->_M_buf);
+     }
+ 
+   public:
+     _File_sink(FILE* __f, bool __add_newline) noexcept
+     : _Buf_sink<char>(), _M_file(__f), _M_add_newline(__add_newline)
+     { }
+ 
+     ~_File_sink() noexcept(false) // See above for noexcept(false) rationale.
+     {
+       _File_sink::_M_overflow();
+       if (_M_add_newline)
+ 	::putc_unlocked('\n', _M_file._M_file);
+     }
+ 
+     using _Sink<char>::out;
+   };
+ #else
+   // A wrapper around a format sink that copies the output to a stdio FILE.
+   // This is not actually a _Sink itself, but it creates one to hold the
+   // formatted characters and then copies them to the file when finished.
+   class _File_sink final
+   {
+     FILE* _M_file;
+     _Str_sink<char> _M_sink;
+     bool _M_add_newline;
+ 
+   public:
+     _File_sink(FILE* __f, bool __add_newline) noexcept
+     : _M_file(__f), _M_add_newline(__add_newline)
+     { }
+ 
+     ~_File_sink() noexcept(false) // See above for noexcept(false) rationale.
+     {
+       string __s = std::move(_M_sink).get();
+       if (_M_add_newline)
+ 	__s += '\n';
+       auto __n = std::fwrite(__s.data(), 1, __s.size(), _M_file);
+       if (__n < __s.size())
+ 	__throw_system_error(EIO); // Non-POSIX fwrite doesn't set errno.
+     }
+ 
+     auto out() { return _M_sink.out(); }
+   };
+ #endif
+ } // namespace __format
+ 
+ #ifdef _GLIBCXX_NO_INLINE_PRINT
+ # define _GLIBCXX_PRINT_INLINE_USED [[__gnu__::__used__]]
+ #else
+ # define _GLIBCXX_PRINT_INLINE_USED
+ #endif
+ 
+   _GLIBCXX_PRINT_INLINE_USED
+   inline void
+   vprint_nonunicode(FILE* __stream, string_view __fmt, format_args __args)
+   {
+     std::vformat_to(__format::_File_sink(__stream, false).out(), __fmt, __args);
+   }
+ 
+   _GLIBCXX_PRINT_INLINE_USED
+   inline void
+   vprint_nonunicode_buffered(FILE* __stream, string_view __fmt,
+ 			     format_args __args)
+   {
+     __format::_Str_sink<char> __buf;
+     std::vformat_to(__buf.out(), __fmt, __args);
+     auto __out = __buf.view();
+     if (std::fwrite(__out.data(), 1, __out.size(), __stream) != __out.size())
+       __throw_system_error(EIO);
+   }
+ 
+   _GLIBCXX_PRINT_INLINE_USED
+   inline void
+   vprint_unicode(FILE* __stream, string_view __fmt, format_args __args)
+   {
+ #if !defined(_WIN32) || defined(__CYGWIN__)
+     // For most targets we don't need to do anything special to write
+     // Unicode to a terminal.
+     std::vprint_nonunicode(__stream, __fmt, __args);
+ #else
+     __format::_Str_sink<char> __buf;
+     std::vformat_to(__buf.out(), __fmt, __args);
+     auto __out = __buf._M_span();
+ 
+     void* __open_terminal(FILE*);
+     error_code __write_to_terminal(void*, span<char>);
+     // If stream refers to a terminal, write a native Unicode string to it.
+     if (auto __term = __open_terminal(__stream))
+       {
+ 	error_code __e;
+ 	if (!std::fflush(__stream))
+ 	  {
+ 	    __e = __write_to_terminal(__term, __out);
+ 	    if (!__e)
+ 	      return;
+ 	    if (__e == std::make_error_code(errc::illegal_byte_sequence))
+ 	      return;
+ 	  }
+ 	else
+ 	  __e = error_code(errno, generic_category());
+ 	_GLIBCXX_THROW_OR_ABORT(system_error(__e, "std::vprint_unicode"));
+       }
+ 
+     // Otherwise just write the string to the file.
+     if (std::fwrite(__out.data(), 1, __out.size(), __stream) != __out.size())
+       __throw_system_error(EIO);
+ #endif
+   }
+ 
+   _GLIBCXX_PRINT_INLINE_USED
+   inline void
+   vprint_unicode_buffered(FILE* __stream, string_view __fmt, format_args __args)
+   {
+ #if !defined(_WIN32) || defined(__CYGWIN__)
+     // For most targets we don't need to do anything special to write
+     // Unicode to a terminal. Just use the nonunicode function.
+     std::vprint_nonunicode_buffered(__stream, __fmt, __args);
+ #else
+     // For Windows the locking function formats everything first anyway,
+     // so no formatting happens while a lock is taken. Just use that.
+     std::vprint_unicode(__stream, __fmt, __args);
+ #endif
+   }
+ #undef _GLIBCXX_PRINT_INLINE_USED
+ 
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace std
+ #endif // __glibcxx_print
+ #endif // _GLIBCXX_PRINT_H
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/random.tcc gcc-16-20260419/libstdc++-v3/include/bits/random.tcc
*** gcc-16-20260412/libstdc++-v3/include/bits/random.tcc	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/random.tcc	Sun Apr 19 22:32:20 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 945,951 ****
  	{
  	  __type __uh
  	    = (static_cast<__type>(_M_x[1]) << __w)
! 		| (static_cast<__type>(_M_x[0]) + 1);
  	  __type __lh
  	    = (static_cast<__type>(_M_x[3]) << __w)
  		| static_cast<__type>(_M_x[2]);
--- 945,952 ----
  	{
  	  __type __uh
  	    = (static_cast<__type>(_M_x[1]) << __w)
! 		| static_cast<__type>(_M_x[0]);
! 	  ++__uh;
  	  __type __lh
  	    = (static_cast<__type>(_M_x[3]) << __w)
  		| static_cast<__type>(_M_x[2]);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 963,973 ****
  	}
        else
  	{
! 	  __type __num =
! 		  (static_cast<__type>(_M_x[1]) << __w)
! 		  | (static_cast<__type>(_M_x[0]) + 1);
! 	  _M_x[0] = __num & max();
! 	  _M_x[1] = (__num >> __w) & max();
  	}
        _M_i = 0;
      }
--- 964,975 ----
  	}
        else
  	{
! 	  __type __num
! 	    = (static_cast<__type>(_M_x[1]) << __w)
! 		| static_cast<__type>(_M_x[0]);
! 	  ++__num;
! 	  _M_x[0] = static_cast<_UIntType>(__num & max());
! 	  _M_x[1] = static_cast<_UIntType>((__num >> __w) & max());
  	}
        _M_i = 0;
      }
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/simd_vec.h gcc-16-20260419/libstdc++-v3/include/bits/simd_vec.h
*** gcc-16-20260412/libstdc++-v3/include/bits/simd_vec.h	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/simd_vec.h	Sun Apr 19 22:32:20 2026
*************** namespace simd
*** 2264,2272 ****
      -> basic_vec<ranges::range_value_t<_Rg>,
  		 __deduce_abi_t<ranges::range_value_t<_Rg>,
  #if 0 // PR117849
! 				ranges::size(__r)>>;
  #else
! 				decltype(std::span(__r))::extent>>;
  #endif
  
    template <size_t _Bytes, typename _Ap>
--- 2264,2272 ----
      -> basic_vec<ranges::range_value_t<_Rg>,
  		 __deduce_abi_t<ranges::range_value_t<_Rg>,
  #if 0 // PR117849
! 				static_cast<__simd_size_type>(ranges::size(__r))>>;
  #else
! 				static_cast<__simd_size_type>(decltype(std::span(__r))::extent)>>;
  #endif
  
    template <size_t _Bytes, typename _Ap>
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/utility.h gcc-16-20260419/libstdc++-v3/include/bits/utility.h
*** gcc-16-20260412/libstdc++-v3/include/bits/utility.h	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/utility.h	Sun Apr 19 22:32:20 2026
***************
*** 41,46 ****
--- 41,49 ----
  
  #include <type_traits>
  #include <bits/move.h>
+ #ifdef __glibcxx_constant_wrapper // C++ >= 26
+ #  include <bits/invoke.h>
+ #endif
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 342,360 ****
  	-> 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
--- 345,350 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 453,458 ****
--- 443,484 ----
    	-> constant_wrapper<(value = _Right::value)>
        { return {}; }
  
+     template<typename... _Args,
+ 	     bool _ConstExprInvocable = requires {
+ 	       requires (_ConstExprParam<remove_cvref_t<_Args>> && ...);
+ 	       typename constant_wrapper<std::__invoke(value, remove_cvref_t<_Args>::value...)>;
+ 	     }>
+       requires _ConstExprInvocable || is_invocable_v<const value_type&, _Args...>
+       static constexpr decltype(auto)
+       operator()(_Args&&... __args)
+       noexcept(requires {
+ 	requires _ConstExprInvocable || is_nothrow_invocable_v<const value_type&, _Args...>;
+       })
+       {
+ 	if constexpr (_ConstExprInvocable)
+ 	  return constant_wrapper<std::__invoke(value, remove_cvref_t<_Args>::value...)>{};
+ 	else
+ 	  return std::__invoke(value, std::forward<_Args>(__args)...);
+       }
+ 
+     template<typename... _Args,
+ 	     bool _ConstExprSubscriptable = requires {
+ 	       requires (_ConstExprParam<remove_cvref_t<_Args>> && ...);
+ 	       typename constant_wrapper<value[remove_cvref_t<_Args>::value...]>;
+ 	     }>
+       requires _ConstExprSubscriptable || requires { value[std::declval<_Args>()...]; }
+       static constexpr decltype(auto)
+       operator[](_Args&&... __args)
+       noexcept(requires {
+ 	requires _ConstExprSubscriptable || noexcept(value[std::declval<_Args>()...]);
+       })
+       {
+ 	if constexpr (_ConstExprSubscriptable)
+ 	  return constant_wrapper<value[remove_cvref_t<_Args>::value...]>{};
+ 	else
+ 	  return value[std::forward<_Args>(__args)...];
+       }
+ 
      constexpr
      operator decltype(value)() const noexcept
      { return value; }
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 481,486 ****
--- 507,548 ----
        static constexpr size_t size() noexcept { return sizeof...(_Idx); }
      };
  
+ #if __glibcxx_integer_sequence >= 202511L // C++ >= 26
+   /** @brief Structured binding support for `integer_sequence`
+ 
+     * @since C++26
+     * @{
+     */
+   /// Structured binding support
+   template<typename _Tp, _Tp... _Idx>
+     struct tuple_size<integer_sequence<_Tp, _Idx...>>
+     : integral_constant<size_t, sizeof...(_Idx)> { };
+ 
+   template<size_t __i, class _Tp, _Tp... _Idx>
+     struct tuple_element<__i, integer_sequence<_Tp, _Idx...>>
+     {
+       static_assert(__i < sizeof...(_Idx));
+       using type = _Tp;
+     };
+ 
+   template<size_t __i, class _Tp, _Tp... _Idx>
+     struct tuple_element<__i, const integer_sequence<_Tp, _Idx...>>
+     {
+       static_assert(__i < sizeof...(_Idx));
+       using type = _Tp;
+     };
+ 
+   template<size_t __i, class _Tp, _Tp... _Idx>
+     [[nodiscard]]
+     constexpr _Tp
+     get(integer_sequence<_Tp, _Idx...>) noexcept
+     {
+       static_assert(__i < sizeof...(_Idx));
+       return _Idx...[__i];
+     }
+     /// @}
+ #endif // __glibcxx_integer_sequence >= 202511L
+ 
    /// Alias template make_integer_sequence
    template<typename _Tp, _Tp _Num>
      using make_integer_sequence
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/version.def gcc-16-20260419/libstdc++-v3/include/bits/version.def
*** gcc-16-20260412/libstdc++-v3/include/bits/version.def	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/version.def	Sun Apr 19 22:32:20 2026
*************** ftms = {
*** 185,190 ****
--- 185,195 ----
  ftms = {
    name = integer_sequence;
    values = {
+     v = 202511;
+     cxxmin = 26;
+     extra_cond = "__cpp_pack_indexing";
+   };
+   values = {
      v = 201304;
      cxxmin = 14;
    };
*************** ftms = {
*** 403,410 ****
  
  ftms = {
    name = constant_wrapper;
    values = {
!     v = 202506;
      cxxmin = 26;
    };
  };
--- 408,417 ----
  
  ftms = {
    name = constant_wrapper;
+   // 202506 P2781R9 std::constexpr_wrapper 
+   // 202603 P3978R3 constant_wrapper should unwrap on call and subscript
    values = {
!     v = 202603;
      cxxmin = 26;
    };
  };
*************** ftms = {
*** 1865,1870 ****
--- 1872,1893 ----
  };
  
  ftms = {
+   name = stdbit_h;
+   values = {
+     v = 202603;
+     cxxmin = 26;
+   };
+ };
+ 
+ ftms = {
+   name = stdckdint_h;
+   values = {
+     v = 202603;
+     cxxmin = 26;
+   };
+ };
+ 
+ ftms = {
    name = adaptor_iterator_pair_constructor;
    values = {
      v = 202106;
*************** ftms = {
*** 1959,1967 ****
  };
  
  ftms = {
    name = function_ref;
    values = {
!     v = 202306;
      cxxmin = 26;
    };
  };
--- 1982,1993 ----
  };
  
  ftms = {
+   // 202306 P0792R14 function_ref: a non-owning reference to a Callable
+   // 202511 P3774R1  Rename std::nontype, and make it broadly useful
+   // 202603 P3948R1  constant_wrapper is the only tool needed for passing...
    name = function_ref;
    values = {
!     v = 202603;
      cxxmin = 26;
    };
  };
*************** ftms = {
*** 2344,2349 ****
--- 2370,2390 ----
      cxxmin = 26;
      extra_cond = "__cpp_contracts >= 202502L";
    };
+ };
+ 
+ ftms = {
+   name = replaceable_contract_violation_handler;
+   values = {
+     v = 202603;
+     cxxmin = 26;
+     extra_cond = "__cpp_contracts >= 202502L "
+     "&& __ELF__";
+   };
+   values = {
+     v = 0;
+     cxxmin = 26;
+     extra_cond = "__cpp_contracts >= 202502L";
+   };
  };
  
  ftms = {
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/bits/version.h gcc-16-20260419/libstdc++-v3/include/bits/version.h
*** gcc-16-20260412/libstdc++-v3/include/bits/version.h	Sun Apr 12 22:32:20 2026
--- gcc-16-20260419/libstdc++-v3/include/bits/version.h	Sun Apr 19 22:32:20 2026
***************
*** 186,192 ****
  #undef __glibcxx_want_exchange_function
  
  #if !defined(__cpp_lib_integer_sequence)
! # if (__cplusplus >= 201402L)
  #  define __glibcxx_integer_sequence 201304L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
  #   define __cpp_lib_integer_sequence 201304L
--- 186,197 ----
  #undef __glibcxx_want_exchange_function
  
  #if !defined(__cpp_lib_integer_sequence)
! # if (__cplusplus >  202302L) && (__cpp_pack_indexing)
! #  define __glibcxx_integer_sequence 202511L
! #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
! #   define __cpp_lib_integer_sequence 202511L
! #  endif
! # elif (__cplusplus >= 201402L)
  #  define __glibcxx_integer_sequence 201304L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
  #   define __cpp_lib_integer_sequence 201304L
***************
*** 442,450 ****
  
  #if !defined(__cpp_lib_constant_wrapper)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_constant_wrapper 202506L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constant_wrapper)
! #   define __cpp_lib_constant_wrapper 202506L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_constant_wrapper) */
--- 447,455 ----
  
  #if !defined(__cpp_lib_constant_wrapper)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_constant_wrapper 202603L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constant_wrapper)
! #   define __cpp_lib_constant_wrapper 202603L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_constant_wrapper) */
***************
*** 2071,2076 ****
--- 2076,2101 ----
  #endif /* !defined(__cpp_lib_stdatomic_h) */
  #undef __glibcxx_want_stdatomic_h
  
+ #if !defined(__cpp_lib_stdbit_h)
+ # if (__cplusplus >  202302L)
+ #  define __glibcxx_stdbit_h 202603L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdbit_h)
+ #   define __cpp_lib_stdbit_h 202603L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_stdbit_h) */
+ #undef __glibcxx_want_stdbit_h
+ 
+ #if !defined(__cpp_lib_stdckdint_h)
+ # if (__cplusplus >  202302L)
+ #  define __glibcxx_stdckdint_h 202603L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdckdint_h)
+ #   define __cpp_lib_stdckdint_h 202603L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_stdckdint_h) */
+ #undef __glibcxx_want_stdckdint_h
+ 
  #if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
  # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
  #  define __glibcxx_adaptor_iterator_pair_constructor 202106L
***************
*** 2183,2191 ****
  
  #if !defined(__cpp_lib_function_ref)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_function_ref 202306L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_function_ref)
! #   define __cpp_lib_function_ref 202306L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_function_ref) */
--- 2208,2216 ----
  
  #if !defined(__cpp_lib_function_ref)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_function_ref 202603L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_function_ref)
! #   define __cpp_lib_function_ref 202603L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_function_ref) */
***************
*** 2616,2621 ****
--- 2641,2661 ----
  #endif /* !defined(__cpp_lib_contracts) */
  #undef __glibcxx_want_contracts
  
+ #if !defined(__cpp_lib_replaceable_contract_violation_handler)
+ # if (__cplusplus >  202302L) && (__cpp_contracts >= 202502L && __ELF__)
+ #  define __glibcxx_replaceable_contract_violation_handler 202603L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)
+ #   define __cpp_lib_replaceable_contract_violation_handler 202603L
+ #  endif
+ # elif (__cplusplus >  202302L) && (__cpp_contracts >= 202502L)
+ #  define __glibcxx_replaceable_contract_violation_handler 0L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)
+ #   define __cpp_lib_replaceable_contract_violation_handler 0L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_replaceable_contract_violation_handler) */
+ #undef __glibcxx_want_replaceable_contract_violation_handler
+ 
  #if !defined(__cpp_lib_simd)
  # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__cpp_structured_bindings >= 202411L && __cpp_expansion_statements >= 202411L && __SSE2__)
  #  define __glibcxx_simd 202506L
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/c_compatibility/stdbit.h gcc-16-20260419/libstdc++-v3/include/c_compatibility/stdbit.h
*** gcc-16-20260412/libstdc++-v3/include/c_compatibility/stdbit.h	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/c_compatibility/stdbit.h	Sun Apr 19 22:32:20 2026
***************
*** 29,35 ****
  #ifndef _GLIBCXX_STDBIT_H
  #define _GLIBCXX_STDBIT_H
  
! #if __cplusplus > 202302L
  #include <bit>
  
  #define __STDC_VERSION_STDBIT_H__ 202311L
--- 29,39 ----
  #ifndef _GLIBCXX_STDBIT_H
  #define _GLIBCXX_STDBIT_H
  
! #define __glibcxx_want_stdbit_h
! #include <bits/version.h>
! 
! #ifdef __cpp_lib_stdbit_h // C++ >= 26
! 
  #include <bit>
  
  #define __STDC_VERSION_STDBIT_H__ 202311L
*************** _GLIBCXX_STDBIT_FUNC(stdc_bit_floor);
*** 577,582 ****
  _GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
  #undef _GLIBCXX_STDBIT_FUNC
  #endif // !DOXYGEN
! #endif // C++26
  
  #endif // _GLIBCXX_STDBIT_H
--- 581,586 ----
  _GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
  #undef _GLIBCXX_STDBIT_FUNC
  #endif // !DOXYGEN
! #endif // __cpp_lib_stdbit_h
  
  #endif // _GLIBCXX_STDBIT_H
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/c_compatibility/stdckdint.h gcc-16-20260419/libstdc++-v3/include/c_compatibility/stdckdint.h
*** gcc-16-20260412/libstdc++-v3/include/c_compatibility/stdckdint.h	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/c_compatibility/stdckdint.h	Sun Apr 19 22:32:20 2026
***************
*** 29,35 ****
  #ifndef _GLIBCXX_STDCKDINT_H
  #define _GLIBCXX_STDCKDINT_H
  
! #if __cplusplus > 202302L
  #include <type_traits>
  #include <concepts>
  
--- 29,39 ----
  #ifndef _GLIBCXX_STDCKDINT_H
  #define _GLIBCXX_STDCKDINT_H
  
! #define __glibcxx_want_stdckdint_h
! #include <bits/version.h>
! 
! #ifdef __cpp_lib_stdckdint_h // C++ >= 26
! 
  #include <type_traits>
  #include <concepts>
  
*************** using __gnu_cxx::ckd_sub;
*** 96,101 ****
  using __gnu_cxx::ckd_mul;
  #endif
  
! #endif // C++26
  
  #endif // _GLIBCXX_STDCKDINT_H
--- 100,105 ----
  using __gnu_cxx::ckd_mul;
  #endif
  
! #endif // __cpp_lib_stdckdint_h
  
  #endif // _GLIBCXX_STDCKDINT_H
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/std/chrono gcc-16-20260419/libstdc++-v3/include/std/chrono
*** gcc-16-20260412/libstdc++-v3/include/std/chrono	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/std/chrono	Sun Apr 19 22:32:20 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 301,312 ****
--- 301,314 ----
  	  { return utc_clock::to_sys(__t); }
        };
  
+     /// @cond undocumented
      template<typename _Tp, typename _Clock>
        inline constexpr bool __is_time_point_for_v = false;
  
      template<typename _Clock, typename _Duration>
        inline constexpr bool
         __is_time_point_for_v<time_point<_Clock, _Duration>, _Clock> = true;
+     /// @endcond
  
      // Conversions between system_clock and other clocks
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 517,522 ****
--- 519,525 ----
  
      inline constexpr last_spec last{};
  
+     /// @cond undocumented
      namespace __detail
      {
        // Helper to __add_modulo and __sub_modulo.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 564,570 ****
  
        inline constexpr unsigned __days_per_month[12]
  	= { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
!     }
  
      // DAY
  
--- 567,574 ----
  
        inline constexpr unsigned __days_per_month[12]
  	= { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
!     } // namespace __detail
!     /// @endcond
  
      // DAY
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1438,1443 ****
--- 1442,1448 ----
  
      // YEAR_MONTH
  
+     /// @cond undocumented
      namespace __detail
      {
        // [time.cal.ym], [time.cal.ymd], etc constrain the 'months'-based
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1454,1459 ****
--- 1459,1465 ----
        // 'years'.
        using __months_years_conversion_disambiguator = void;
      }
+     /// @endcond
  
      class year_month
      {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2489,2502 ****
--- 2495,2511 ----
  
      // 12/24 HOURS FUNCTIONS
  
+     /// True if a `chrono::hours` value represents a time before midday.
      constexpr bool
      is_am(const hours& __h) noexcept
      { return 0h <= __h && __h <= 11h; }
  
+     /// True if a `chrono::hours` value represents a time after midday.
      constexpr bool
      is_pm(const hours& __h) noexcept
      { return 12h <= __h && __h <= 23h; }
  
+     /// Convert a 24-hour time into a 12-hour time.
      constexpr hours
      make12(const hours& __h) noexcept
      {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2507,2512 ****
--- 2516,2522 ----
        return __h;
      }
  
+     /// Convert a 12-hour time and p.m. flag into a 24-hour time.
      constexpr hours
      make24(const hours& __h, bool __is_pm) noexcept
      {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2604,2609 ****
--- 2614,2620 ----
  	}
      };
  
+     /// @cond undocumented
      template<typename _Duration>
        [[noreturn]] void
        __throw_bad_local_time(const local_time<_Duration>& __tp,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2617,2622 ****
--- 2628,2634 ----
  	__builtin_abort();
  #endif
        }
+     /// @endcond
  
      enum class choose { earliest, latest };
  
*************** namespace __detail
*** 3337,3342 ****
--- 3349,3355 ----
  
   namespace chrono {
  
+    /// @cond undocumented
     template<typename _T1, typename... _Ts>
       [[__gnu__::__always_inline__]]
       constexpr auto
*************** namespace __detail
*** 3407,3412 ****
--- 3420,3426 ----
  	   return chrono::__int_hash(__res);
  	 }
       }
+    /// @endcond
   } // namespace chrono
  
    // duration
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/std/contracts gcc-16-20260419/libstdc++-v3/include/std/contracts
*** gcc-16-20260412/libstdc++-v3/include/std/contracts	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/std/contracts	Sun Apr 19 22:32:20 2026
***************
*** 33,38 ****
--- 33,39 ----
  #pragma GCC system_header
  
  #define __glibcxx_want_contracts
+ #define __glibcxx_want_replaceable_contract_violation_handler
  #include <bits/version.h>
  
  #ifdef __cpp_lib_contracts
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/std/format gcc-16-20260419/libstdc++-v3/include/std/format
*** gcc-16-20260412/libstdc++-v3/include/std/format	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/std/format	Sun Apr 19 22:32:20 2026
*************** namespace __format
*** 5219,5300 ****
  #endif
      };
  
!   template<typename _Out, typename _CharT, typename _Context>
!     inline _Out
!     __do_vformat_to(_Out __out, basic_string_view<_CharT> __fmt,
! 		    const basic_format_args<_Context>& __args,
! 		    const locale* __loc)
      {
!       if constexpr (is_same_v<_Out, _Sink_iter<_CharT>>)
! 	{
! 	  if constexpr (is_same_v<_CharT, char>)
! 	    // Fast path for "{}" format strings and simple format arg types.
! 	    if (__fmt.size() == 2 && __fmt[0] == '{' && __fmt[1] == '}')
! 	      {
! 		bool __done = false;
! 		__format::__visit_format_arg([&](auto& __arg) {
! 		  using _Tp = remove_cvref_t<decltype(__arg)>;
! 		  if constexpr (is_same_v<_Tp, bool>)
  		    {
! 		      size_t __len = 4 + !__arg;
! 		      const char* __chars[] = { "false", "true" };
! 		      if (auto __res = __out._M_reserve(__len))
! 			{
! 			  __builtin_memcpy(__res.get(), __chars[__arg], __len);
! 			  __res._M_bump(__len);
! 			  __done = true;
! 			}
  		    }
! 		  else if constexpr (is_same_v<_Tp, char>)
  		    {
! 		      if (auto __res = __out._M_reserve(1))
! 			{
! 			  *__res.get() = __arg;
! 			  __res._M_bump(1);
! 			  __done = true;
! 			}
  		    }
! 		  else if constexpr (is_integral_v<_Tp>)
  		    {
! 		      make_unsigned_t<_Tp> __uval;
! 		      const bool __neg = __arg < 0;
! 		      if (__neg)
! 			__uval = make_unsigned_t<_Tp>(~__arg) + 1u;
! 		      else
! 			__uval = __arg;
! 		      const auto __n = __detail::__to_chars_len(__uval);
! 		      if (auto __res = __out._M_reserve(__n + __neg))
! 			{
! 			  auto __ptr = __res.get();
! 			  *__ptr = '-';
! 			  __detail::__to_chars_10_impl(__ptr + (int)__neg, __n,
! 						       __uval);
! 			  __res._M_bump(__n + __neg);
! 			  __done = true;
! 			}
  		    }
! 		  else if constexpr (is_convertible_v<_Tp, string_view>)
  		    {
! 		      string_view __sv = __arg;
! 		      if (auto __res = __out._M_reserve(__sv.size()))
! 			{
! 			  __builtin_memcpy(__res.get(), __sv.data(), __sv.size());
! 			  __res._M_bump(__sv.size());
! 			  __done = true;
! 			}
  		    }
! 		}, __args.get(0));
  
! 		if (__done)
! 		  return __out;
! 	      }
  
  	  auto __ctx = __loc == nullptr
! 			 ? _Context(__args, __out)
! 			 : _Context(__args, __out, *__loc);
! 	  _Formatting_scanner<_Sink_iter<_CharT>, _CharT> __scanner(__ctx, __fmt);
! 	  __scanner._M_scan();
! 	  return __out;
  	}
        else if constexpr (__contiguous_char_iter<_CharT, _Out>)
  	{
--- 5219,5324 ----
  #endif
      };
  
!   template<typename _CharT, unsigned = __unicode::__literal_encoding_is_unicode<_CharT>()>
!     _Sink_iter<_CharT>
!     __do_vformat_to(_Sink_iter<_CharT> __out, basic_string_view<_CharT> __fmt,
! 		    __format_context<_CharT>& __ctx)
      {
!       if constexpr (is_same_v<_CharT, char>)
! 	// Fast path for "{}" format strings and simple format arg types.
! 	if (__fmt.size() == 2 && __fmt[0] == '{' && __fmt[1] == '}')
! 	  {
! 	    bool __done = false;
! 	    __format::__visit_format_arg([&](auto& __arg) {
! 	      using _Tp = remove_cvref_t<decltype(__arg)>;
! 	      if constexpr (is_same_v<_Tp, bool>)
! 		{
! 		  size_t __len = 4 + !__arg;
! 		  const char* __chars[] = { "false", "true" };
! 		  if (auto __res = __out._M_reserve(__len))
  		    {
! 		      __builtin_memcpy(__res.get(), __chars[__arg], __len);
! 		      __res._M_bump(__len);
! 		      __done = true;
  		    }
! 		}
! 	      else if constexpr (is_same_v<_Tp, char>)
! 		{
! 		  if (auto __res = __out._M_reserve(1))
  		    {
! 		      *__res.get() = __arg;
! 		      __res._M_bump(1);
! 		      __done = true;
  		    }
! 		}
! 	      else if constexpr (is_integral_v<_Tp>)
! 		{
! 		  make_unsigned_t<_Tp> __uval;
! 		  const bool __neg = __arg < 0;
! 		  if (__neg)
! 		    __uval = make_unsigned_t<_Tp>(~__arg) + 1u;
! 		  else
! 		    __uval = __arg;
! 		  const auto __n = __detail::__to_chars_len(__uval);
! 		  if (auto __res = __out._M_reserve(__n + __neg))
  		    {
! 		      auto __ptr = __res.get();
! 		      *__ptr = '-';
! 		      __detail::__to_chars_10_impl(__ptr + (int)__neg, __n,
! 						   __uval);
! 		      __res._M_bump(__n + __neg);
! 		      __done = true;
  		    }
! 		}
! 	      else if constexpr (is_convertible_v<_Tp, string_view>)
! 		{
! 		  string_view __sv = __arg;
! 		  if (auto __res = __out._M_reserve(__sv.size()))
  		    {
! 		      __builtin_memcpy(__res.get(), __sv.data(), __sv.size());
! 		      __res._M_bump(__sv.size());
! 		      __done = true;
  		    }
! 		}
! 	    }, __ctx.arg(0));
  
! 	    if (__done)
! 	      return __out;
! 	  }
  
+       _Formatting_scanner<_Sink_iter<_CharT>, _CharT> __scanner(__ctx, __fmt);
+       __scanner._M_scan();
+       return __out;
+     }
+ 
+ // The behavior of the formatters (interpretation of fill character) depends
+ // on the literal encoding. As explicit instantiation of __do_vformat_to
+ // instantiates formatters for types stored in basic_format_arg, we can
+ // support only single encoding, in this case unicode. This should cover
+ // most common use cases.
+ #if __cplusplus <= 202002L && _GLIBCXX_EXTERN_TEMPLATE > 0
+     extern template _Sink_iter<char>
+       __do_vformat_to<char, 1>(_Sink_iter<char>, string_view,
+ 			       format_context&);
+ # ifdef _GLIBCXX_USE_WCHAR_T
+     extern template _Sink_iter<wchar_t>
+       __do_vformat_to<wchar_t, 1>(_Sink_iter<wchar_t>, wstring_view,
+ 				  wformat_context&);
+ # endif
+ #endif
+ 
+   template<typename _Out, typename _CharT, typename _Context>
+     inline _Out
+     __do_vformat_to(_Out __out, basic_string_view<_CharT> __fmt,
+ 		    const basic_format_args<_Context>& __args,
+ 		    const locale* __loc)
+     {
+       if constexpr (is_same_v<_Out, _Sink_iter<_CharT>>)
+ 	{
  	  auto __ctx = __loc == nullptr
! 		     ? _Context(__args, __out)
! 		     : _Context(__args, __out, *__loc);
! 	  return __format::__do_vformat_to(__out, __fmt, __ctx);
  	}
        else if constexpr (__contiguous_char_iter<_CharT, _Out>)
  	{
*************** namespace __format
*** 5311,5317 ****
      }
  
    template<typename _Out, typename _CharT>
!     format_to_n_result<_Out>
      __do_vformat_to_n(_Out __out, iter_difference_t<_Out> __n,
  		      basic_string_view<_CharT> __fmt,
  		      const type_identity_t<
--- 5335,5341 ----
      }
  
    template<typename _Out, typename _CharT>
!     inline format_to_n_result<_Out>
      __do_vformat_to_n(_Out __out, iter_difference_t<_Out> __n,
  		      basic_string_view<_CharT> __fmt,
  		      const type_identity_t<
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/std/meta gcc-16-20260419/libstdc++-v3/include/std/meta
*** gcc-16-20260412/libstdc++-v3/include/std/meta	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/std/meta	Sun Apr 19 22:32:20 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 682,692 ****
      define_static_object(_Tp&& __t)
      {
        using _Up = remove_cvref_t<_Tp>;
!       if constexpr (meta::is_class_type(^^_Up))
  	{
  	  auto __cst = meta::reflect_constant(std::forward<_Tp>(__t));
  	  return std::addressof(meta::extract<const _Up&>(__cst));
  	}
        else
  	return std::define_static_array(span(std::addressof(__t), 1)).data();
      }
--- 682,697 ----
      define_static_object(_Tp&& __t)
      {
        using _Up = remove_cvref_t<_Tp>;
!       if constexpr (meta::is_class_type(^^_Up) || meta::is_union_type(^^_Up))
  	{
  	  auto __cst = meta::reflect_constant(std::forward<_Tp>(__t));
  	  return std::addressof(meta::extract<const _Up&>(__cst));
  	}
+       else if constexpr (meta::is_array_type(^^_Up))
+ 	{
+ 	  auto __cst = meta::reflect_constant_array(std::forward<_Tp>(__t));
+ 	  return std::addressof(meta::extract<const _Up&>(__cst));
+ 	}
        else
  	return std::define_static_array(span(std::addressof(__t), 1)).data();
      }
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/std/optional gcc-16-20260419/libstdc++-v3/include/std/optional
*** gcc-16-20260412/libstdc++-v3/include/std/optional	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/std/optional	Sun Apr 19 22:32:20 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 321,326 ****
--- 321,332 ----
        {
  	_M_engaged = false;
  	_M_payload._M_value.~_Stored_type();
+ #if __cpp_lib_optional >= 202106L // full constexpr support
+ 	if (std::is_constant_evaluated())
+ 	  // Ensure union _M_payload always has an active member, for sake
+ 	  // of the core constant expression requirements.
+ 	  std::construct_at(std::__addressof(_M_payload._M_empty));
+ #endif
        }
  
  #if __cplusplus >= 202002L
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/std/ostream gcc-16-20260419/libstdc++-v3/include/std/ostream
*** gcc-16-20260412/libstdc++-v3/include/std/ostream	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/std/ostream	Sun Apr 19 22:32:20 2026
***************
*** 40,51 ****
  #include <bits/requires_hosted.h> // iostreams
  
  #include <bits/ostream.h>
! #if __cplusplus > 202002L
! # include <format>
  #endif
  
  # define __glibcxx_want_print
! #include <bits/version.h> // __glibcxx_syncbuf
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
--- 40,56 ----
  #include <bits/requires_hosted.h> // iostreams
  
  #include <bits/ostream.h>
! 
! #ifdef __glibcxx_print
! # include <format> // format_string, make_format_args
! #endif
! 
! #ifndef _GLIBCXX_NO_INLINE_PRINT
! # include <bits/ostream_print.h>
  #endif
  
  # define __glibcxx_want_print
! #include <bits/version.h> // __cpp_lib_print, __glibcxx_syncbuf
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 156,258 ****
  #endif // __glibcxx_syncbuf
  
  #if __cpp_lib_print // C++ >= 23
!   inline void
!   vprint_nonunicode(ostream& __os, string_view __fmt, format_args __args)
!   {
!     ostream::sentry __cerb(__os);
!     if (__cerb)
!       {
! 	__format::_Str_sink<char> __buf;
! 	std::vformat_to(__buf.out(), __os.getloc(), __fmt, __args);
! 	auto __out = __buf.view();
! 
! 	__try
! 	  {
! 	    std::__ostream_write(__os, __out.data(), __out.size());
! 	  }
! 	__catch(const __cxxabiv1::__forced_unwind&)
! 	  {
! 	    __os._M_setstate(ios_base::badbit);
! 	    __throw_exception_again;
! 	  }
! 	__catch(...)
! 	  { __os._M_setstate(ios_base::badbit); }
!       }
!   }
! 
!   inline void
!   vprint_unicode(ostream& __os, string_view __fmt, format_args __args)
!   {
! #if !defined(_WIN32) || defined(__CYGWIN__)
!     // For most targets we don't need to do anything special to write
!     // Unicode to a terminal.
!     std::vprint_nonunicode(__os, __fmt, __args);
! #else
!     ostream::sentry __cerb(__os);
!     if (__cerb)
!       {
! 	__format::_Str_sink<char> __buf;
! 	std::vformat_to(__buf.out(), __os.getloc(), __fmt, __args);
! 	auto __out = __buf._M_span();
! 
! 	void* __open_terminal(streambuf*);
! 	error_code __write_to_terminal(void*, span<char>);
! 	// If stream refers to a terminal, write a Unicode string to it.
! 	if (auto __term = __open_terminal(__os.rdbuf()))
! 	  {
! #if !defined(_WIN32) || defined(__CYGWIN__)
! 	    // For POSIX, __open_terminal(streambuf*) uses fdopen to open a
! 	    // new file, so we would need to close it here. This code is not
! 	    // actually compiled because it's inside an #ifdef _WIN32 group,
! 	    // but just in case that changes in future ...
! 	    struct _Guard
! 	    {
! 	      _Guard(void* __p) : _M_f((FILE*)__p) { }
! 	      ~_Guard() { std::fclose(_M_f); }
! 	      _Guard(_Guard&&) = delete;
! 	      _Guard& operator=(_Guard&&) = delete;
! 	      FILE* _M_f;
! 	    };
! 	    _Guard __g(__term);
! #endif
! 
! 	    ios_base::iostate __err = ios_base::goodbit;
! 	    __try
! 	      {
! 		if (__os.rdbuf()->pubsync() == -1)
! 		  __err = ios::badbit;
! 		else if (auto __e = __write_to_terminal(__term, __out))
! 		  if (__e != std::make_error_code(errc::illegal_byte_sequence))
! 		    __err = ios::badbit;
! 	      }
! 	    __catch(const __cxxabiv1::__forced_unwind&)
! 	      {
! 		__os._M_setstate(ios_base::badbit);
! 		__throw_exception_again;
! 	      }
! 	    __catch(...)
! 	      { __os._M_setstate(ios_base::badbit); }
! 
! 	    if (__err)
! 	      __os.setstate(__err);
! 	    return;
! 	  }
  
! 	// Otherwise just insert the string as vprint_nonunicode does.
! 	__try
! 	  {
! 	    std::__ostream_write(__os, __out.data(), __out.size());
! 	  }
! 	__catch(const __cxxabiv1::__forced_unwind&)
! 	  {
! 	    __os._M_setstate(ios_base::badbit);
! 	    __throw_exception_again;
! 	  }
! 	__catch(...)
! 	  { __os._M_setstate(ios_base::badbit); }
!       }
! #endif // _WIN32
!   }
  
    template<typename... _Args>
      inline void
--- 161,171 ----
  #endif // __glibcxx_syncbuf
  
  #if __cpp_lib_print // C++ >= 23
!   void
!   vprint_nonunicode(ostream& __os, string_view __fmt, format_args __args);
  
!   void
!   vprint_unicode(ostream& __os, string_view __fmt, format_args __args);
  
    template<typename... _Args>
      inline void
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 294,300 ****
  #endif
        __os.put('\n');
    }
- 
  #endif // __cpp_lib_print
  
  _GLIBCXX_END_NAMESPACE_VERSION
--- 207,212 ----
diff -Nrcpad gcc-16-20260412/libstdc++-v3/include/std/print gcc-16-20260419/libstdc++-v3/include/std/print
*** gcc-16-20260412/libstdc++-v3/include/std/print	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/include/std/print	Sun Apr 19 22:32:20 2026
***************
*** 40,323 ****
  
  #ifdef __cpp_lib_print // C++ >= 23
  
! #include <format>
! #include <cstdio>
! #include <cerrno>
! #include <bits/functexcept.h>
  
  #ifdef _WIN32
  # include <system_error>
  #endif
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
! namespace __format
! {
! #if _GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT
!   // These are defined in <stdio_ext.h> but we don't want to include that.
!   extern "C" int __fwritable(FILE*) noexcept;
!   extern "C" int __flbf(FILE*) noexcept;
!   extern "C" size_t __fbufsize(FILE*) noexcept;
! 
!   // A format sink that writes directly to a Glibc FILE.
!   // The file is locked on construction and its buffer is accessed directly.
!   class _File_sink final : _Buf_sink<char>
!   {
!     struct _File
!     {
!       explicit
!       _File(FILE* __f) : _M_file(__f)
!       {
! 	::flockfile(__f);
! 	// Ensure stream is in write mode
!         if (!__fwritable(__f))
! 	  {
! 	    ::funlockfile(__f);
! 	    __throw_system_error(EACCES);
! 	  }
! 	// Allocate buffer if needed:
!         if (_M_write_buf().empty())
! 	  if (::__overflow(__f, EOF) == EOF)
! 	    {
! 	      const int __err = errno;
! 	      ::funlockfile(__f);
! 	      __throw_system_error(__err);
! 	    }
!       }
! 
!       ~_File() { ::funlockfile(_M_file); }
! 
!       _File(_File&&) = delete;
! 
!       // A span viewing the unused portion of the stream's output buffer.
!       std::span<char>
!       _M_write_buf() noexcept
!       {
! 	return {_M_file->_IO_write_ptr,
! 		size_t(_M_file->_IO_buf_end - _M_file->_IO_write_ptr)};
!       }
! 
!       // Flush the output buffer to the file so we can write to it again.
!       void
!       _M_flush()
!       {
! 	if (::fflush_unlocked(_M_file))
! 	  __throw_system_error(errno);
!       }
! 
!       // Update the current position in the output buffer.
!       void
!       _M_bump(size_t __n) noexcept
!       { _M_file->_IO_write_ptr += __n; }
! 
!       bool
!       _M_line_buffered() const noexcept
!       { return __flbf(_M_file); } // Or: _M_file->_flags & 0x200
! 
!       bool
!       _M_unbuffered() const noexcept
!       { return __fbufsize(_M_file) == 1; } // Or: _M_file->_flags & 0x2
! 
!       FILE* _M_file;
!     } _M_file;
! 
!     bool _M_add_newline; // True for std::println, false for std::print.
! 
!     // Flush the stream's put area so it can be refilled.
!     void
!     _M_overflow() override
!     {
!       auto __s = this->_M_used();
!       if (__s.data() == this->_M_buf)
! 	{
! 	  // Characters in internal buffer need to be transferred to the FILE.
! 	  auto __n = ::fwrite_unlocked(__s.data(), 1, __s.size(),
! 				       _M_file._M_file);
! 	  if (__n != __s.size())
! 	    __throw_system_error(errno);
! 	  this->_M_reset(this->_M_buf);
! 	}
!       else
! 	{
! 	  // Characters were written directly to the FILE's output buffer.
! 	  _M_file._M_bump(__s.size());
! 	  _M_file._M_flush();
! 	  this->_M_reset(_M_file._M_write_buf());
! 	}
!     }
! 
!   public:
!     _File_sink(FILE* __f, bool __add_newline)
!     : _M_file(__f), _M_add_newline(__add_newline)
!     {
!       if (!_M_file._M_unbuffered())
! 	// Write directly to the FILE's output buffer.
! 	this->_M_reset(_M_file._M_write_buf());
!     }
! 
!     ~_File_sink() noexcept(false)
!     {
!       auto __s = this->_M_used();
!       if (__s.data() == this->_M_buf) // Unbuffered stream
! 	{
! 	  _File_sink::_M_overflow();
! 	  if (_M_add_newline)
! 	    ::putc_unlocked('\n', _M_file._M_file);
! 	}
!       else
! 	{
! 	  _M_file._M_bump(__s.size());
! 	  if (_M_add_newline)
! 	    ::putc_unlocked('\n', _M_file._M_file);
! 	  else if (_M_file._M_line_buffered() && __s.size()
! 		     && (__s.back() == '\n'
! 			   || __builtin_memchr(__s.data(), '\n', __s.size())))
! 	    _M_file._M_flush();
! 	}
!     }
! 
!     using _Sink<char>::out;
!   };
! #elif _GLIBCXX_USE_STDIO_LOCKING
!   // A format sink that buffers output and then copies it to a stdio FILE.
!   // The file is locked on construction and written to using fwrite_unlocked.
!   class _File_sink final : _Buf_sink<char>
!   {
!     FILE* _M_file;
!     bool _M_add_newline;
! 
!     // Transfer buffer contents to the FILE, so buffer can be refilled.
!     void
!     _M_overflow() override
!     {
!       auto __s = this->_M_used();
! #if _GLIBCXX_HAVE_FWRITE_UNLOCKED
!       auto __n = ::fwrite_unlocked(__s.data(), 1, __s.size(), _M_file);
!       if (__n != __s.size())
! 	__throw_system_error(errno);
! #else
!       for (char __c : __s)
! 	::putc_unlocked(__c, _M_file);
!       if (::ferror(_M_file))
! 	__throw_system_error(errno);
! #endif
!       this->_M_reset(this->_M_buf);
!     }
! 
!   public:
!     _File_sink(FILE* __f, bool __add_newline) noexcept
!     : _Buf_sink<char>(), _M_file(__f), _M_add_newline(__add_newline)
!     { ::flockfile(__f); }
! 
!     ~_File_sink() noexcept(false)
!     {
!       _File_sink::_M_overflow();
!       if (_M_add_newline)
! 	::putc_unlocked('\n', _M_file);
!       ::funlockfile(_M_file);
!     }
! 
!     using _Sink<char>::out;
!   };
! #else
!   // A wrapper around a format sink that copies the output to a stdio FILE.
!   // This is not actually a _Sink itself, but it creates one to hold the
!   // formatted characters and then copies them to the file when finished.
!   class _File_sink final
!   {
!     FILE* _M_file;
!     _Str_sink<char> _M_sink;
!     bool _M_add_newline;
! 
!   public:
!     _File_sink(FILE* __f, bool __add_newline) noexcept
!     : _M_file(__f), _M_add_newline(__add_newline)
!     { }
! 
!     ~_File_sink() noexcept(false)
!     {
!       string __s = std::move(_M_sink).get();
!       if (_M_add_newline)
! 	__s += '\n';
!       auto __n = std::fwrite(__s.data(), 1, __s.size(), _M_file);
!       if (__n < __s.size())
! 	__throw_system_error(EIO);
!     }
! 
!     auto out() { return _M_sink.out(); }
!   };
! #endif
! } // namespace __format
! 
!   inline void
!   vprint_nonunicode(FILE* __stream, string_view __fmt, format_args __args)
!   {
!     std::vformat_to(__format::_File_sink(__stream, false).out(), __fmt, __args);
!   }
  
!   inline void
    vprint_nonunicode_buffered(FILE* __stream, string_view __fmt,
! 			     format_args __args)
!   {
!     __format::_Str_sink<char> __buf;
!     std::vformat_to(__buf.out(), __fmt, __args);
!     auto __out = __buf.view();
!     if (std::fwrite(__out.data(), 1, __out.size(), __stream) != __out.size())
!       __throw_system_error(EIO);
!   }
  
!   inline void
!   vprint_unicode(FILE* __stream, string_view __fmt, format_args __args)
!   {
! #if !defined(_WIN32) || defined(__CYGWIN__)
!     // For most targets we don't need to do anything special to write
!     // Unicode to a terminal.
!     std::vprint_nonunicode(__stream, __fmt, __args);
! #else
!     __format::_Str_sink<char> __buf;
!     std::vformat_to(__buf.out(), __fmt, __args);
!     auto __out = __buf._M_span();
  
!     void* __open_terminal(FILE*);
!     error_code __write_to_terminal(void*, span<char>);
!     // If stream refers to a terminal, write a native Unicode string to it.
!     if (auto __term = __open_terminal(__stream))
!       {
! 	error_code __e;
! 	if (!std::fflush(__stream))
! 	  {
! 	    __e = __write_to_terminal(__term, __out);
! 	    if (!__e)
! 	      return;
! 	    if (__e == std::make_error_code(errc::illegal_byte_sequence))
! 	      return;
! 	  }
! 	else
! 	  __e = error_code(errno, generic_category());
! 	_GLIBCXX_THROW_OR_ABORT(system_error(__e, "std::vprint_unicode"));
!       }
  
!     // Otherwise just write the string to the file.
!     if (std::fwrite(__out.data(), 1, __out.size(), __stream) != __out.size())
!       __throw_system_error(EIO);
! #endif
!   }
  
!   inline void
!   vprint_unicode_buffered(FILE* __stream, string_view __fmt, format_args __args)
!   {
! #if !defined(_WIN32) || defined(__CYGWIN__)
!     // For most targets we don't need to do anything special to write
!     // Unicode to a terminal. Just use the nonunicode function.
!     std::vprint_nonunicode_buffered(__stream, __fmt, __args);
! #else
!     // For Windows the locking function formats everything first anyway,
!     // so no formatting happens while a lock is taken. Just use that.
!     std::vprint_unicode(__stream, __fmt, __args);
! #endif
!   }
  
    template<typename... _Args>
      inline void
--- 40,81 ----
  
  #ifdef __cpp_lib_print // C++ >= 23
  
! #include <format>             // format_args (TODO: move to bits/formatfwd.h?)
! #include <cstdio>             // FILE, EOF, putc
! #include <cerrno>             // EACCES, EIO
! #include <bits/functexcept.h> // __throw_system_error
  
  #ifdef _WIN32
  # include <system_error>
  #endif
  
+ #ifndef _GLIBCXX_NO_INLINE_PRINT
+ # include <bits/print.h>
+ #endif
+ 
  namespace std _GLIBCXX_VISIBILITY(default)
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
!   void
!   vprint_nonunicode(FILE* __stream, string_view __fmt, format_args __args);
  
!   void
    vprint_nonunicode_buffered(FILE* __stream, string_view __fmt,
! 			     format_args __args);
  
!   void
!   vprint_unicode(FILE* __stream, string_view __fmt, format_args __args);
  
!   void
!   vprint_unicode_buffered(FILE* __stream, string_view __fmt,
! 			  format_args __args);
  
!   void
!   vprint_unicode_buffered(string_view __fmt, format_args __args);
  
!   void
!   vprint_nonunicode_buffered(string_view __fmt, format_args __args);
  
    template<typename... _Args>
      inline void
*************** namespace __format
*** 357,362 ****
--- 115,121 ----
        // and we know what that would call, so we can call that directly.
  
        auto __fmtargs = std::make_format_args(__args...);
+ 
  #if defined(_WIN32) && !defined(__CYGWIN__)
        if constexpr (__unicode::__literal_encoding_is_utf8())
  	{
*************** namespace __format
*** 371,376 ****
--- 130,144 ----
        else
  #endif
  
+ #ifdef _GLIBCXX_NO_INLINE_PRINT
+ 	{
+ 	  string __fmtn;
+ 	  __fmtn.reserve(__fmt.get().size() + 1);
+ 	  __fmtn = __fmt.get();
+ 	  __fmtn += '\n';
+ 	  std::vprint_nonunicode(__stream, __fmtn, __fmtargs);
+ 	}
+ #else
        // For non-Windows and for non-Unicode on Windows, we know that print
        // would call vprint_nonunicode or vprint_nonunicode_buffered with a
        // newline appended to the format-string. Use a _File_sink that adds
*************** namespace __format
*** 387,392 ****
--- 155,161 ----
  	  string_view __s(__buf.view());
  	  __format::_File_sink(__stream, true).out() = __s;
  	}
+ #endif
      }
  
    template<typename... _Args>
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/Makefile.am gcc-16-20260419/libstdc++-v3/src/Makefile.am
*** gcc-16-20260412/libstdc++-v3/src/Makefile.am	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/src/Makefile.am	Sun Apr 19 22:32:20 2026
*************** libstdc___la_LIBADD = \
*** 145,151 ****
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la
  
  libstdc___la_DEPENDENCIES = \
  	${version_dep} \
--- 145,152 ----
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la \
! 	$(top_builddir)/src/c++23/libmodulesconvenience.la
  
  libstdc___la_DEPENDENCIES = \
  	${version_dep} \
*************** libstdc___la_DEPENDENCIES = \
*** 153,159 ****
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la
  
  if ENABLE_DARWIN_AT_RPATH
  libstdc___darwin_rpath = -Wc,-nodefaultrpaths
--- 154,161 ----
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la \
! 	$(top_builddir)/src/c++23/libmodulesconvenience.la
  
  if ENABLE_DARWIN_AT_RPATH
  libstdc___darwin_rpath = -Wc,-nodefaultrpaths
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/Makefile.in gcc-16-20260419/libstdc++-v3/src/Makefile.in
*** gcc-16-20260412/libstdc++-v3/src/Makefile.in	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/src/Makefile.in	Sun Apr 19 22:32:20 2026
*************** libstdc___la_LIBADD = \
*** 555,561 ****
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la
  
  libstdc___la_DEPENDENCIES = \
  	${version_dep} \
--- 555,562 ----
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la \
! 	$(top_builddir)/src/c++23/libmodulesconvenience.la
  
  libstdc___la_DEPENDENCIES = \
  	${version_dep} \
*************** libstdc___la_DEPENDENCIES = \
*** 563,569 ****
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la
  
  @ENABLE_DARWIN_AT_RPATH_TRUE@libstdc___darwin_rpath =  \
  @ENABLE_DARWIN_AT_RPATH_TRUE@	-Wc,-nodefaultrpaths \
--- 564,571 ----
  	$(top_builddir)/src/c++98/libc++98convenience.la \
  	$(top_builddir)/src/c++11/libc++11convenience.la \
  	$(top_builddir)/src/c++17/libc++17convenience.la \
! 	$(top_builddir)/src/c++20/libc++20convenience.la \
! 	$(top_builddir)/src/c++23/libmodulesconvenience.la
  
  @ENABLE_DARWIN_AT_RPATH_TRUE@libstdc___darwin_rpath =  \
  @ENABLE_DARWIN_AT_RPATH_TRUE@	-Wc,-nodefaultrpaths \
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.am gcc-16-20260419/libstdc++-v3/src/c++20/Makefile.am
*** gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.am	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/src/c++20/Makefile.am	Sun Apr 19 22:32:20 2026
*************** else
*** 33,43 ****
  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
--- 33,43 ----
  extra_string_inst_sources =
  endif
  
  if ENABLE_EXTERN_TEMPLATE
  # XTEMPLATE_FLAGS = -fno-implicit-templates
  inst_sources = \
  	sstream-inst.cc \
+ 	format-inst.cc \
  	string-inst.cc \
  	$(extra_string_inst_sources)
  else
*************** format.lo: format.cc
*** 73,78 ****
--- 73,86 ----
  format.o: format.cc
  	$(CXXCOMPILE) -std=gnu++26 -fno-access-control -c $<
  
+ if ENABLE_EXTERN_TEMPLATE
+ # The unicode literal version of formatters is exported, override the encoding accordingly
+ format-inst.lo: format-inst.cc
+ 	$(LTCXXCOMPILE) -fexec-charset=UTF-8 -c $<
+ format-inst.o: format-inst.cc
+ 	$(CXXCOMPILE) -fexec-charset=UTF-8 -c $<
+ endif
+ 
  if GLIBCXX_HOSTED
  libc__20convenience_la_SOURCES = $(sources)  $(inst_sources)
  else
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.in gcc-16-20260419/libstdc++-v3/src/c++20/Makefile.in
*** gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.in	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/src/c++20/Makefile.in	Sun Apr 19 22:32:20 2026
*************** libc__20convenience_la_LIBADD =
*** 126,132 ****
  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)
--- 126,133 ----
  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@	format-inst.lo string-inst.lo \
! @ENABLE_EXTERN_TEMPLATE_TRUE@	$(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)
*************** headers =
*** 438,443 ****
--- 439,445 ----
  # XTEMPLATE_FLAGS = -fno-implicit-templates
  @ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = \
  @ENABLE_EXTERN_TEMPLATE_TRUE@	sstream-inst.cc \
+ @ENABLE_EXTERN_TEMPLATE_TRUE@	format-inst.cc \
  @ENABLE_EXTERN_TEMPLATE_TRUE@	string-inst.cc \
  @ENABLE_EXTERN_TEMPLATE_TRUE@	$(extra_string_inst_sources)
  
*************** format.lo: format.cc
*** 773,778 ****
--- 775,786 ----
  format.o: format.cc
  	$(CXXCOMPILE) -std=gnu++26 -fno-access-control -c $<
  
+ # The unicode literal version of formatters is exported, override the encoding accordingly
+ @ENABLE_EXTERN_TEMPLATE_TRUE@format-inst.lo: format-inst.cc
+ @ENABLE_EXTERN_TEMPLATE_TRUE@	$(LTCXXCOMPILE) -fexec-charset=UTF-8 -c $<
+ @ENABLE_EXTERN_TEMPLATE_TRUE@format-inst.o: format-inst.cc
+ @ENABLE_EXTERN_TEMPLATE_TRUE@	$(CXXCOMPILE) -fexec-charset=UTF-8 -c $<
+ 
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
  .NOEXPORT:
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/c++20/format-inst.cc gcc-16-20260419/libstdc++-v3/src/c++20/format-inst.cc
*** gcc-16-20260412/libstdc++-v3/src/c++20/format-inst.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/src/c++20/format-inst.cc	Sun Apr 19 22:32:20 2026
***************
*** 0 ****
--- 1,45 ----
+ // Definitions for <format> -*- C++ -*-
+ 
+ // Copyright The GNU Toolchain Authors.
+ //
+ // 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/>.
+ 
+ #include <format>
+ 
+ namespace std
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ namespace __format
+ {
+ 
+  template _Sink_iter<char>
+    __do_vformat_to<char, 1>(_Sink_iter<char>, string_view,
+ 			    format_context&);
+ 
+ # ifdef _GLIBCXX_USE_WCHAR_T
+  template _Sink_iter<wchar_t>
+    __do_vformat_to<wchar_t, 1>(_Sink_iter<wchar_t>, wstring_view,
+ 			       wformat_context&);
+ # endif
+ 
+ } // namespace __format
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace std
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/c++23/Makefile.am gcc-16-20260419/libstdc++-v3/src/c++23/Makefile.am
*** gcc-16-20260412/libstdc++-v3/src/c++23/Makefile.am	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/src/c++23/Makefile.am	Sun Apr 19 22:32:20 2026
***************
*** 23,32 ****
  include $(top_srcdir)/fragment.am
  
  # Convenience library for C++23 runtime.
! noinst_LTLIBRARIES = libc++23convenience.la
  
! # Module std support.  Not compiled for now, only installed.
  # Let's install the interface units in the bits subdirectory.
  toolexeclib_DATA = libstdc++.modules.json
  includebitsdir = $(gxx_include_dir)/bits
  includebits_DATA = std.cc std.compat.cc
--- 23,35 ----
  include $(top_srcdir)/fragment.am
  
  # Convenience library for C++23 runtime.
! # This libc++23convenience.la one isn't linked into libstdc++.la yet,
! # so build an additional libmodulesconvenience.la which is linked in.
! noinst_LTLIBRARIES = libc++23convenience.la libmodulesconvenience.la
  
! # Module std support.
  # Let's install the interface units in the bits subdirectory.
+ # We also compile them and include them in libmodulesconvenience.la
  toolexeclib_DATA = libstdc++.modules.json
  includebitsdir = $(gxx_include_dir)/bits
  includebits_DATA = std.cc std.compat.cc
*************** stamp-modules-bits: $(includebits_DATA)
*** 59,64 ****
--- 62,70 ----
  
  all-local: stamp-module-manifest stamp-modules-bits
  
+ clean-local:
+ 	rm -rf stamp* libstdc++.modules.json std.cc std.compat.cc gcm.cache
+ 
  headers =
  
  if ENABLE_EXTERN_TEMPLATE
*************** else
*** 80,91 ****
--- 86,132 ----
  libc__23convenience_la_SOURCES =
  endif
  
+ libmodulesconvenience_la_SOURCES = std.cc std.compat.cc
+ 
  # Use C++26 so that std::filebuf::native_handle() is available.
  print.lo: print.cc
  	$(LTCXXCOMPILE) -std=gnu++26 -c $<
  print.o: print.cc
  	$(CXXCOMPILE) -std=gnu++26 -c $<
  
+ MODULES_FLAGS = -isystem ${glibcxx_srcdir}/include/backward -fmodules \
+ 	-Wno-unknown-pragmas
+ 
+ # These go into libmodulesconvenience.la and are linked into libstdc++
+ std.lo: std.cc
+ 	if ! $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ std.o: std.cc
+ 	if ! $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ std.compat.lo: std.compat.cc std.lo
+ 	if ! $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std.compat module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ std.compat.o: std.compat.cc std.o
+ 	if ! $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std.compat module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ 
  # AM_CXXFLAGS needs to be in each subdirectory so that it can be
  # modified in a per-library or per-sub-library way.  Need to manually
  # set this option because CONFIG_CXXFLAGS has to be after
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/c++23/Makefile.in gcc-16-20260419/libstdc++-v3/src/c++23/Makefile.in
*** gcc-16-20260412/libstdc++-v3/src/c++23/Makefile.in	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/src/c++23/Makefile.in	Sun Apr 19 22:32:20 2026
*************** AM_V_lt = $(am__v_lt_@AM_V@)
*** 133,138 ****
--- 133,142 ----
  am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
  am__v_lt_0 = --silent
  am__v_lt_1 = 
+ libmodulesconvenience_la_LIBADD =
+ am_libmodulesconvenience_la_OBJECTS = std.lo std.compat.lo
+ libmodulesconvenience_la_OBJECTS =  \
+ 	$(am_libmodulesconvenience_la_OBJECTS)
  AM_V_P = $(am__v_P_@AM_V@)
  am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
  am__v_P_0 = false
*************** AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
*** 159,165 ****
  am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
  am__v_CXXLD_0 = @echo "  CXXLD   " $@;
  am__v_CXXLD_1 = 
! SOURCES = $(libc__23convenience_la_SOURCES)
  am__can_run_installinfo = \
    case $$AM_UPDATE_INFO_DIR in \
      n|no|NO) false;; \
--- 163,170 ----
  am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
  am__v_CXXLD_0 = @echo "  CXXLD   " $@;
  am__v_CXXLD_1 = 
! SOURCES = $(libc__23convenience_la_SOURCES) \
! 	$(libmodulesconvenience_la_SOURCES)
  am__can_run_installinfo = \
    case $$AM_UPDATE_INFO_DIR in \
      n|no|NO) false;; \
*************** WARN_CXXFLAGS = \
*** 457,466 ****
  AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
  
  # Convenience library for C++23 runtime.
! noinst_LTLIBRARIES = libc++23convenience.la
  
! # Module std support.  Not compiled for now, only installed.
  # Let's install the interface units in the bits subdirectory.
  toolexeclib_DATA = libstdc++.modules.json
  includebitsdir = $(gxx_include_dir)/bits
  includebits_DATA = std.cc std.compat.cc
--- 462,474 ----
  AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
  
  # Convenience library for C++23 runtime.
! # This libc++23convenience.la one isn't linked into libstdc++.la yet,
! # so build an additional libmodulesconvenience.la which is linked in.
! noinst_LTLIBRARIES = libc++23convenience.la libmodulesconvenience.la
  
! # Module std support.
  # Let's install the interface units in the bits subdirectory.
+ # We also compile them and include them in libmodulesconvenience.la
  toolexeclib_DATA = libstdc++.modules.json
  includebitsdir = $(gxx_include_dir)/bits
  includebits_DATA = std.cc std.compat.cc
*************** headers =
*** 473,478 ****
--- 481,490 ----
  sources = stacktrace.cc print.cc
  @GLIBCXX_HOSTED_FALSE@libc__23convenience_la_SOURCES = 
  @GLIBCXX_HOSTED_TRUE@libc__23convenience_la_SOURCES = $(sources)  $(inst_sources)
+ libmodulesconvenience_la_SOURCES = std.cc std.compat.cc
+ MODULES_FLAGS = -isystem ${glibcxx_srcdir}/include/backward -fmodules \
+ 	-Wno-unknown-pragmas
+ 
  
  # AM_CXXFLAGS needs to be in each subdirectory so that it can be
  # modified in a per-library or per-sub-library way.  Need to manually
*************** clean-noinstLTLIBRARIES:
*** 586,591 ****
--- 598,606 ----
  libc++23convenience.la: $(libc__23convenience_la_OBJECTS) $(libc__23convenience_la_DEPENDENCIES) $(EXTRA_libc__23convenience_la_DEPENDENCIES) 
  	$(AM_V_CXXLD)$(CXXLINK)  $(libc__23convenience_la_OBJECTS) $(libc__23convenience_la_LIBADD) $(LIBS)
  
+ libmodulesconvenience.la: $(libmodulesconvenience_la_OBJECTS) $(libmodulesconvenience_la_DEPENDENCIES) $(EXTRA_libmodulesconvenience_la_DEPENDENCIES) 
+ 	$(AM_V_CXXLD)$(CXXLINK)  $(libmodulesconvenience_la_OBJECTS) $(libmodulesconvenience_la_LIBADD) $(LIBS)
+ 
  mostlyclean-compile:
  	-rm -f *.$(OBJEXT)
  
*************** maintainer-clean-generic:
*** 739,746 ****
  	@echo "it deletes files that may require special tools to rebuild."
  clean: clean-am
  
! clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
! 	mostlyclean-am
  
  distclean: distclean-am
  	-rm -f Makefile
--- 754,761 ----
  	@echo "it deletes files that may require special tools to rebuild."
  clean: clean-am
  
! clean-am: clean-generic clean-libtool clean-local \
! 	clean-noinstLTLIBRARIES mostlyclean-am
  
  distclean: distclean-am
  	-rm -f Makefile
*************** uninstall-am: uninstall-includebitsDATA
*** 809,823 ****
  .MAKE: install-am install-strip
  
  .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
! 	clean-generic clean-libtool clean-noinstLTLIBRARIES \
! 	cscopelist-am ctags ctags-am distclean distclean-compile \
! 	distclean-generic distclean-libtool distclean-tags dvi dvi-am \
! 	html html-am info info-am install install-am install-data \
! 	install-data-am install-dvi install-dvi-am install-exec \
! 	install-exec-am install-html install-html-am \
! 	install-includebitsDATA install-info install-info-am \
! 	install-man install-pdf install-pdf-am install-ps \
! 	install-ps-am install-strip install-toolexeclibDATA \
  	installcheck installcheck-am installdirs maintainer-clean \
  	maintainer-clean-generic mostlyclean mostlyclean-compile \
  	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
--- 824,838 ----
  .MAKE: install-am install-strip
  
  .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
! 	clean-generic clean-libtool clean-local \
! 	clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \
! 	distclean-compile distclean-generic distclean-libtool \
! 	distclean-tags dvi dvi-am html html-am info info-am install \
! 	install-am install-data install-data-am install-dvi \
! 	install-dvi-am install-exec install-exec-am install-html \
! 	install-html-am install-includebitsDATA install-info \
! 	install-info-am install-man install-pdf install-pdf-am \
! 	install-ps install-ps-am install-strip install-toolexeclibDATA \
  	installcheck installcheck-am installdirs maintainer-clean \
  	maintainer-clean-generic mostlyclean mostlyclean-compile \
  	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
*************** stamp-modules-bits: $(includebits_DATA)
*** 855,860 ****
--- 870,878 ----
  
  all-local: stamp-module-manifest stamp-modules-bits
  
+ clean-local:
+ 	rm -rf stamp* libstdc++.modules.json std.cc std.compat.cc gcm.cache
+ 
  vpath % $(top_srcdir)/src/c++23
  
  # Use C++26 so that std::filebuf::native_handle() is available.
*************** print.lo: print.cc
*** 863,868 ****
--- 881,916 ----
  print.o: print.cc
  	$(CXXCOMPILE) -std=gnu++26 -c $<
  
+ # These go into libmodulesconvenience.la and are linked into libstdc++
+ std.lo: std.cc
+ 	if ! $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ std.o: std.cc
+ 	if ! $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ std.compat.lo: std.compat.cc std.lo
+ 	if ! $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std.compat module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(LTCXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ std.compat.o: std.compat.cc std.o
+ 	if ! $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; then \
+ 	  echo "Cannot compile std.compat module" >&2; \
+ 	  echo "Module initialization function will be missing" >&2; \
+ 	  echo > $<.tmp && mv $<.tmp $< && \
+ 	  $(CXXCOMPILE) $(MODULES_FLAGS) -c $< ; \
+ 	fi
+ 
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
  .NOEXPORT:
diff -Nrcpad gcc-16-20260412/libstdc++-v3/src/c++23/print.cc gcc-16-20260419/libstdc++-v3/src/c++23/print.cc
*** gcc-16-20260412/libstdc++-v3/src/c++23/print.cc	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/src/c++23/print.cc	Sun Apr 19 22:32:20 2026
***************
*** 22,27 ****
--- 22,34 ----
  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  // <http://www.gnu.org/licenses/>.
  
+ // We want to emit symbols for the inline functions in bits/print.h here.
+ #define _GLIBCXX_NO_INLINE_PRINT 1
+ #include <ostream>
+ #include <bits/ostream_print.h>
+ #include <print>
+ #include <bits/print.h>
+ 
  #include <span>
  #include <string>
  #include <streambuf>
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc gcc-16-20260419/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc	Sun Apr 19 22:32:20 2026
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do run { target c++26 } }
+ #include <functional>
  #include <utility>
  #include <string_view>
  
*************** test_c_arrays()
*** 20,28 ****
    auto access = [](auto x, size_t i)
    { return x[i]; };
  
!   check_same(access(std::cw<x>, 0), x[0]);
!   check_same(access(std::cw<x>, 1), x[1]);
!   check_same(access(std::cw<x>, 2), x[2]);
  
    check_same(cx[std::cw<0>], std::cw<x[0]>);
    check_same(cx[std::cw<1>], std::cw<x[1]>);
--- 21,29 ----
    auto access = [](auto x, size_t i)
    { return x[i]; };
  
!   check_same(std::cw<x>[0], x[0]);
!   check_same(std::cw<x>[1], x[1]);
!   check_same(std::cw<x>[2], x[2]);
  
    check_same(cx[std::cw<0>], std::cw<x[0]>);
    check_same(cx[std::cw<1>], std::cw<x[1]>);
*************** constexpr int
*** 96,171 ****
  add(int i, int j)
  { return i + j; }
  
! struct Add
  {
    constexpr int
!   operator()(int i, int j) const noexcept
    { return i + j; }
  };
  
! constexpr void
! test_function_object()
  {
!   auto check = [](auto cfo)
    {
      auto ci = std::cw<2>;
      auto cj = std::cw<3>;
  
!     VERIFY(cfo(ci, cj) == 5);
!     static_assert(std::same_as<decltype(cfo(ci, cj)), std::constant_wrapper<5>>);
  
!     static_assert(std::invocable<decltype(cfo), decltype(ci), decltype(cj)>);
!     static_assert(!std::invocable<decltype(cfo), int, decltype(cj)>);
!     static_assert(!std::invocable<decltype(cfo), int, int>);
!   };
  
!   check(std::cw<Add{}>);
!   check(std::cw<[](int i, int j){ return i + j; }>);
!   check(std::cw<[](auto i, auto j){ return i + j; }>);
! }
  
  constexpr void
! test_function_pointer()
  {
!   auto cptr = std::cw<add>;
!   auto ci = std::cw<2>;
!   auto cj = std::cw<3>;
  
!   VERIFY(cptr(ci, cj) == 5);
!   static_assert(std::same_as<decltype(cptr(ci, cj)), std::constant_wrapper<5>>);
  
!   VERIFY(cptr(2, cj) == 5);
!   static_assert(std::same_as<decltype(cptr(2, cj)), int>);
  
!   VERIFY(cptr(2, 3) == 5);
!   static_assert(std::same_as<decltype(cptr(2, 3)), int>);
  }
  
! struct Indexable1
  {
    constexpr int
!   operator[](int i, int j) const noexcept
    { return i*j; }
  };
  
! template<typename Obj, typename... Args>
!   concept indexable = requires (Obj obj, Args... args)
    {
!     obj[args...];
!   };
  
  constexpr void
  test_indexable1()
  {
!   auto cind = std::cw<Indexable1{}>;
!   auto ci = std::cw<2>;
!   auto cj = std::cw<3>;
!   VERIFY(cind[ci, cj] == ci*cj);
!   static_assert(std::same_as<decltype(cind[ci, cj]), std::constant_wrapper<6>>);
  
!   static_assert(indexable<decltype(cind), decltype(ci), decltype(cj)>);
!   static_assert(!indexable<decltype(cind), int, decltype(cj)>);
!   static_assert(!indexable<decltype(cind), int, int>);
  }
  
  struct Indexable2
--- 97,400 ----
  add(int i, int j)
  { return i + j; }
  
! template<bool Noexcept>
! struct CAdd
  {
    constexpr int
!   operator()(int i, int j) const noexcept(Noexcept)
    { return i + j; }
  };
  
! template<bool Noexcept>
! struct RAdd
  {
!   int
!   operator()(int i, int j) const noexcept(Noexcept)
!   { return i + j; }
! };
! 
! struct CMixedAdd
! {
!   static constexpr int
!   operator()(int i, int j)
!   { return i + j; }
! 
!   template <auto N1, auto N2>
!     static constexpr int operator()
!     (std::constant_wrapper<N1, int> i, std::constant_wrapper<N2, int> j)
!     { return 100 + i + j; }
! };
! 
! struct RMixedAdd
! {
!   static int
!   operator()(int i, int j)
!   { return i + j; }
! 
!   template <auto N1, auto N2>
!     static int operator()
!     (std::constant_wrapper<N1, int> i, std::constant_wrapper<N2, int> j)
!     { return 100 + i + j; }
! };
! 
! template<typename T1, typename T2>
! struct AtLeastOneInt
! {
!   static_assert(std::is_same_v<T1, int> || std::is_same_v<T2, int>);
!   using type = int;
! };
! 
! struct PoisonedAdd
! {
!   template<typename T1, typename T2>
!   constexpr static
!   typename AtLeastOneInt<T1, T2>::type 
!   operator()(T1 i, T2 j) noexcept
!   { return i + j; }
! };
! 
! struct MoveOnly
! {
!   constexpr explicit
!   MoveOnly(int p) : v(p)
!   { }
! 
!   MoveOnly(MoveOnly&&) = default;
! 
!   int v;
! };
! 
! struct MoveArgFunc
! {
!   constexpr int
!   operator()(MoveOnly arg) const
!   { return arg.v; }
! };
! 
! struct NegativeArgument {};
! 
! struct ThrowFunc
! {
!   static constexpr int
!   operator()(int i, int j)
!   {
!     if (i < 0 || j < 0)
!       throw NegativeArgument();
!     return i + j;
!   }
! };
! 
! template<bool Constexpr, auto functor>
!   constexpr void
!   check_invoke()
    {
      auto ci = std::cw<2>;
      auto cj = std::cw<3>;
+     auto cfo = std::cw<functor>;
  
!     if constexpr (Constexpr)
!       check_same(cfo(ci, cj), std::cw<5>);
!     else
!       check_same(cfo(ci, cj), 5);
  
!     check_same(cfo(2, cj), 5);
!     check_same(cfo(2, 3), 5);
  
!     constexpr bool Noexcept = noexcept(functor(2, 3));
!     static_assert(noexcept(cfo(ci, cj)) == Constexpr || Noexcept);
!     static_assert(noexcept(cfo(2, cj)) == Noexcept);
!     static_assert(noexcept(cfo(2, 3)) == Noexcept);
!   }
  
  constexpr void
! test_function_object()
  {
!   check_invoke<true, CAdd<true>{}>();
!   check_invoke<true, CAdd<false>{}>();
!   check_invoke<true, [](int i, int j) { return i + j; }>();
!   check_invoke<true, [](auto i, auto j) noexcept { return i + j; }>();
!   if !consteval {
!     check_invoke<false, RAdd<true>{}>();
!     check_invoke<false, RAdd<false>{}>();
!   }
  
!   // Check if constant_wrappers are not passed to value,
!   // if they can be unwrapped.
!   check_invoke<true, PoisonedAdd{}>();
  
!   // Prefer unwrapping constant_wrappers, so calls (int, int)
!   check_same(CMixedAdd{}(2, 3), 5);
!   check_same(CMixedAdd{}(std::cw<2>, std::cw<3>), 105);
!   check_same(std::cw<CMixedAdd{}>(std::cw<2>, std::cw<3>), std::cw<5>);
!   check_invoke<true, CMixedAdd{}>();
!   if !consteval {
!     // Cannot return value wrapped in constant_wrapper because operator
!     // is not constexpr, fallbacks to runtime call, that selects
!     // (constant_wrapper, constant_wrapper) overload
!     check_same(RMixedAdd{}(2, 3), 5);
!     check_same(RMixedAdd{}(std::cw<2>, std::cw<3>), 105);
!     check_same(std::cw<RMixedAdd{}>(std::cw<2>, std::cw<3>), 105);
!     check_same(std::cw<RMixedAdd{}>(std::cw<2>, 3), 5);
!     check_same(std::cw<RMixedAdd{}>(2, 3), 5);
!   }
  
!   // Test if arguments are fowarded
!   std::cw<MoveArgFunc{}>(MoveOnly{10});
! 
!   // For positive arguments call do not throw, constant_wrapper type is valid.
!   check_invoke<true, ThrowFunc{}>();
!   // For negative arguments, the call exits via exception, and constant_wrapper 
!   // type is invalid, so we fallback to runtime.
!   static_assert(std::is_same_v<int, decltype(std::cw<ThrowFunc{}>(std::cw<-1>, std::cw<1>))>);
!   static_assert(!noexcept(std::cw<ThrowFunc{}>(std::cw<-1>, std::cw<1>)));
!   try {
!     std::cw<ThrowFunc{}>(std::cw<-1>, std::cw<1>);
!     VERIFY(false);
!   } catch (const NegativeArgument&) {
!     VERIFY(true);
!   }
  }
  
! constexpr void
! test_function_pointer()
! {
!   check_invoke<true, add>();
! }
! 
! template<bool Noexcept>
! struct CIndex
  {
    constexpr int
!   operator[](int i, int j) const noexcept(Noexcept)
    { return i*j; }
  };
  
! template<bool Noexcept>
! struct RIndex
! {
!   int
!   operator[](int i, int j) const noexcept(Noexcept)
!   { return i*j; }
! };
! 
! struct CMixedIndex
! {
!   static constexpr int
!   operator[](int i, int j)
!   { return i * j; }
! 
!   template <auto N1, auto N2>
!     static constexpr int operator[]
!     (std::constant_wrapper<N1, int> i, std::constant_wrapper<N2, int> j)
!     { return 100 + i * j; }
! };
! 
! struct RMixedIndex
! {
!   static int
!   operator[](int i, int j)
!   { return i * j; }
! 
!   template <auto N1, auto N2>
!     static int operator[]
!     (std::constant_wrapper<N1, int> i, std::constant_wrapper<N2, int> j)
!     { return 100 + i * j; }
! };
! 
! struct PoisonedIndex
! {
!   template<typename T1, typename T2>
!   constexpr static
!   typename AtLeastOneInt<T1, T2>::type 
!   operator[](T1 i, T2 j) noexcept
!   { return i * j; }
! };
! 
! struct MoveArgIndex
! {
!   constexpr int
!   operator[](MoveOnly arg) const
!   { return arg.v; }
! };
! 
! struct ThrowIndex
! {
!   static constexpr int
!   operator[](int i, int j)
    {
!     if (i < 0 || j < 0)
!       throw NegativeArgument();
!     return i * j;
!   }
! };
! 
! template<bool Constexpr, auto index>
!   constexpr void
!   check_subscript()
!   {
!     auto ci = std::cw<2>;
!     auto cj = std::cw<3>;
!     auto cio = std::cw<index>;
! 
!     if constexpr (Constexpr)
!       check_same(cio[ci, cj], std::cw<6>);
!     else
!       check_same(cio[ci, cj], 6);
! 
!     check_same(cio[2, cj], 6);
!     check_same(cio[2, 3], 6);
! 
!     constexpr bool Noexcept = noexcept(index[2, 3]);
!     static_assert(noexcept(cio[ci, cj]) == Constexpr || Noexcept);
!     static_assert(noexcept(cio[2, cj]) == Noexcept);
!     static_assert(noexcept(cio[2, 3]) == Noexcept);
!   }
  
  constexpr void
  test_indexable1()
  {
!   check_subscript<true, CIndex<true>{}>();
!   check_subscript<true, CIndex<false>{}>();
!   if !consteval {
!     check_subscript<false, RIndex<true>{}>();
!     check_subscript<false, RIndex<false>{}>();
!   }
  
!   // Check if constant_wrappers are not passed to value,
!   // if they can be unwrapped.
!   check_subscript<true, PoisonedIndex{}>();
! 
!   // Prefer unwrapping constant_wrappers, so calls (int, int)
!   check_same(CMixedIndex{}[2, 3], 6);
!   check_same(CMixedIndex{}[std::cw<2>, std::cw<3>], 106);
!   check_same(std::cw<CMixedIndex{}>[std::cw<2>, std::cw<3>], std::cw<6>);
!   check_subscript<true, CMixedIndex{}>();
!   if !consteval {
!     // Cannot return value wrapped in constant_wrapper because operator
!     // is not constexpr, fallbacks to runtime call, that selects
!     // (constant_wrapper, constant_wrapper) overload
!     check_same(RMixedIndex{}[2, 3], 6);
!     check_same(RMixedIndex{}[std::cw<2>, std::cw<3>], 106);
!     check_same(std::cw<RMixedIndex{}>[std::cw<2>, std::cw<3>], 106);
!     check_same(std::cw<RMixedIndex{}>[std::cw<2>, 3], 6);
!     check_same(std::cw<RMixedIndex{}>[2, 3], 6);
!   }
! 
!   // Test if arguments are fowarded
!   std::cw<MoveArgIndex{}>[MoveOnly{10}];
! 
!   // For positive arguments subscript do not throw, constant_wrapper type is valid.
!   check_subscript<true, ThrowIndex{}>();
!   // For negative arguments, the subscript exits via exception, and constant_wrapper 
!   // type is invalid, so we fallback to runtime.
!   static_assert(std::is_same_v<int, decltype(std::cw<ThrowIndex{}>[std::cw<-1>, std::cw<1>])>);
!   static_assert(!noexcept(std::cw<ThrowIndex{}>[std::cw<-1>, std::cw<1>]));
!   try {
!     std::cw<ThrowIndex{}>[std::cw<-1>, std::cw<1>];
!     VERIFY(false);
!   } catch (const NegativeArgument&) {
!     VERIFY(true);
!   }
  }
  
  struct Indexable2
*************** test_indexable2()
*** 182,193 ****
    auto cind = std::cw<Indexable2{}>;
    auto ci = std::cw<2>;
    auto cj = std::cw<3>;
!   VERIFY(cind[ci, cj] == ci*cj);
!   static_assert(std::same_as<decltype(cind[ci, cj]), std::constant_wrapper<6>>);
! 
!   static_assert(indexable<decltype(cind), decltype(ci), decltype(cj)>);
!   static_assert(!indexable<decltype(cind), int, decltype(cj)>);
!   static_assert(!indexable<decltype(cind), int, int>);
  }
  
  struct Indexable3
--- 411,419 ----
    auto cind = std::cw<Indexable2{}>;
    auto ci = std::cw<2>;
    auto cj = std::cw<3>;
!   check_same(cind[ci, cj], std::cw<6>);
!   check_same(cind[ci, 3], 6);
!   check_same(cind[2, 3], 6);
  }
  
  struct Indexable3
*************** test_member_pointer()
*** 234,243 ****
    check_same((&co)->*(&Divide::value), nom);
    check_same(&(co.value)->*cvalue, nom);
  
!   auto expect_unwrapped = nom / denom;
!   check_same(((&co)->*(&Divide::divide))(denom), expect_unwrapped);
!   check_same((&(co.value)->*cdiv)(denom), expect_unwrapped);
!   check_same(((&decltype(co)::value)->*cdiv)(denom), expect_unwrapped);
  }
  
  struct Truthy
--- 460,480 ----
    check_same((&co)->*(&Divide::value), nom);
    check_same(&(co.value)->*cvalue, nom);
  
!   check_same(cvalue(co), std::cw<nom>);
!   check_same(cvalue(co.value), nom);
!   check_same(cvalue(&co.value), nom);
!   check_same(cvalue(std::ref(co.value)), nom);
! 
!   auto cresult = std::cw<nom / denom>;
!   check_same(((&co)->*(&Divide::divide))(denom), cresult.value);
!   check_same((&(co.value)->*cdiv)(denom), cresult.value);
!   check_same(((&decltype(co)::value)->*cdiv)(denom), cresult.value);
! 
!   check_same(cdiv(co, std::cw<denom>), cresult); 
!   check_same(cdiv(co.value, std::cw<denom>), cresult.value); 
!   check_same(cdiv(co.value, denom), cresult.value); 
!   check_same(cdiv(&co.value, denom), cresult.value); 
!   check_same(cdiv(std::ref(co.value), denom), cresult.value); 
  }
  
  struct Truthy
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc gcc-16-20260419/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc	Sun Apr 12 22:32:17 2026
--- gcc-16-20260419/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc	Sun Apr 19 22:32:20 2026
***************
*** 5,11 ****
  
  #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
  #endif
--- 5,11 ----
  
  #ifndef __cpp_lib_constant_wrapper
  #error "Feature test macro __cpp_lib_constant_wrapper is missing for <utility>"
! #if __cpp_lib_constant_wrapper < 202603L
  #error "Feature test macro __cpp_lib_constant_wrapper has the wrong value"
  #endif
  #endif
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/assign.cc gcc-16-20260419/libstdc++-v3/testsuite/20_util/function_ref/assign.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/assign.cc	Sun Apr 12 22:32:18 2026
--- gcc-16-20260419/libstdc++-v3/testsuite/20_util/function_ref/assign.cc	Sun Apr 19 22:32:20 2026
***************
*** 2,13 ****
  
  #include <functional>
  
- #ifndef __cpp_lib_function_ref
- # error "Feature-test macro for function_ref missing in <functional>"
- #elif __cpp_lib_function_ref != 202306L
- # error "Feature-test macro for function_ref has wrong value in <functional>"
- #endif
- 
  using std::constant_wrapper;
  using std::function_ref;
  
--- 2,7 ----
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cons.cc gcc-16-20260419/libstdc++-v3/testsuite/20_util/function_ref/cons.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cons.cc	Sun Apr 12 22:32:18 2026
--- gcc-16-20260419/libstdc++-v3/testsuite/20_util/function_ref/cons.cc	Sun Apr 19 22:32:20 2026
***************
*** 5,11 ****
  
  #ifndef __cpp_lib_function_ref
  # error "Feature-test macro for function_ref missing in <functional>"
! #elif __cpp_lib_function_ref != 202306L
  # error "Feature-test macro for function_ref has wrong value in <functional>"
  #endif
  
--- 5,11 ----
  
  #ifndef __cpp_lib_function_ref
  # error "Feature-test macro for function_ref missing in <functional>"
! #elif __cpp_lib_function_ref != 202603L
  # error "Feature-test macro for function_ref has wrong value in <functional>"
  #endif
  
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access.cc gcc-16-20260419/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access.cc	Sun Apr 19 22:32:20 2026
***************
*** 0 ****
--- 1,143 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <utility>
+ #include <tuple>
+ #include <testsuite_hooks.h>
+ 
+ #if __cpp_lib_integer_sequence < 202511L
+ # error "Feature-test macro __cpp_lib_integer_sequence is incorrect"
+ #endif
+ 
+ constexpr auto
+ destructure_sum(auto seq)
+ {
+   auto [...elems] = seq;
+   return (0 + ... + elems);
+ }
+ 
+ using IS1 = std::make_index_sequence<10>;
+ static_assert( std::tuple_size_v<IS1> == 10 );
+ static_assert( std::is_same_v<std::tuple_element_t<3, IS1>, std::size_t> );
+ static_assert( std::get<7>(IS1{}) == 7 );
+ static_assert( destructure_sum(IS1{}) == 45 );
+ static_assert( noexcept(get<0>(IS1{})) );
+ 
+ using IS2 = std::integer_sequence<int, 42, 101, -13>;
+ static_assert( std::tuple_size_v<IS2> == 3 );
+ static_assert( std::is_same_v<std::tuple_element_t<1, IS2>, int> );
+ static_assert( std::get<2>(IS2{}) == -13 );
+ static_assert( destructure_sum(IS2{}) == 130 );
+ static_assert( noexcept(get<0>(IS2{})) );
+ 
+ using IS3 = std::integer_sequence<char>;
+ static_assert( std::tuple_size_v<IS3> == 0 );
+ 
+ using IS4 = std::integer_sequence<int, 1, 2>;
+ static_assert( !std::is_constructible_v<std::pair<int, int>, IS4> );
+ static_assert( !std::is_constructible_v<std::tuple<int, int>, IS4> );
+ 
+ template<typename = void>
+ constexpr bool
+ test_basic()
+ {
+   {
+     auto [...elems] = std::make_index_sequence<0>{};
+     static_assert( sizeof...(elems) == 0 );
+   }
+ 
+   {
+     auto [...elems] = std::integer_sequence<int, 3, 5, 7, 11>{};
+ 
+     static_assert( sizeof...(elems) == 4 );
+ 
+     VERIFY( elems...[0] == 3 );
+     VERIFY( elems...[1] == 5 );
+     VERIFY( elems...[2] == 7 );
+     VERIFY( elems...[3] == 11 );
+   }
+ 
+   {
+     static constexpr auto [...elems] = std::integer_sequence<short, 2, 4, 8, 16>{};
+ 
+     static_assert( sizeof...(elems) == 4 );
+ 
+     static_assert( elems...[0] == 2 );
+     static_assert( elems...[1] == 4 );
+     static_assert( elems...[2] == 8 );
+     static_assert( elems...[3] == 16 );
+   }
+ 
+   {
+     constexpr auto [...elems] = std::integer_sequence<int, 1, 8, 2, 11>{};
+ 
+     static_assert( sizeof...(elems) == 4 );
+ 
+     static_assert( elems...[0] == 1 );
+     static_assert( elems...[1] == 8 );
+     static_assert( elems...[2] == 2 );
+     static_assert( elems...[3] == 11 );
+   }
+ 
+   {
+     static constexpr auto&& [...elems] = std::integer_sequence<short, 2, 4, 8, 16>{};
+ 
+     static_assert( sizeof...(elems) == 4 );
+ 
+     static_assert( elems...[0] == 2 );
+     static_assert( elems...[1] == 4 );
+     static_assert( elems...[2] == 8 );
+     static_assert( elems...[3] == 16 );
+   }
+ 
+   /* Unimplemented, see PR117784
+   {
+     constexpr auto&& [...elems] = std::integer_sequence<int, 1, 8, 2, 11>{};
+ 
+     static_assert( sizeof...(elems) == 4 );
+ 
+     static_assert( elems...[0] == 1 );
+     static_assert( elems...[1] == 8 );
+     static_assert( elems...[2] == 2 );
+     static_assert( elems...[3] == 11 );
+   }
+   */
+ 
+   {
+     auto idx = 0;
+     static constexpr auto seq = std::make_index_sequence<4>{};
+     template for (constexpr auto elem : seq)
+       {
+ 	VERIFY( elem == idx );
+ 	++idx;
+       }
+     VERIFY( idx == 4 );
+   }
+ 
+ 
+   /* Unimplemented, see PR117784
+   {
+     auto idx = 0;
+     constexpr auto seq = std::make_index_sequence<4>{};
+     template for (constexpr auto elem : seq)
+       {
+ 	VERIFY( elem == idx );
+ 	++idx;
+       }
+     VERIFY( idx == 4 );
+   }
+    
+   {
+     auto idx = 0;
+     template for (constexpr auto elem : std::make_index_sequence<4>{})
+       {
+ 	VERIFY( elem == idx );
+ 	++idx;
+       }
+     VERIFY( idx == 4 );
+   }
+   */
+ 
+   return true;
+ }
+ 
+ static_assert( test_basic() );
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access_neg.cc gcc-16-20260419/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access_neg.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access_neg.cc	Sun Apr 19 22:32:20 2026
***************
*** 0 ****
--- 1,22 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <utility>
+ 
+ using empty = std::integer_sequence<int>;
+ static_assert( std::is_same_v<std::tuple_element_t<0, empty>, int> ); // { dg-error "here" }
+ static_assert( std::is_same_v<std::tuple_element_t<0, const empty>, int> ); // { dg-error "here" }
+ 
+ using size4 = std::integer_sequence<int, 1, 9, 7, 15>;
+ static_assert( std::is_same_v<std::tuple_element_t<4, size4>, int> ); // { dg-error "here" }
+ static_assert( std::is_same_v<std::tuple_element_t<4, const size4>, int> ); // { dg-error "here" }
+ 
+ void
+ test()
+ {
+   (void)std::get<0>(empty{}); // { dg-error "here" }
+   (void)std::get<4>(size4{}); // { dg-error "here" }
+ }
+ 
+ // { dg-error "static assertion failed" "" { target *-*-* } 0 }
+ // { dg-error "cannot index an empty pack" "" { target *-*-* } 0 }
+ // { dg-error "pack index '.' is out of range for pack of length" "" { target *-*-* } 0 }
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/20_util/optional/constexpr/124910.cc gcc-16-20260419/libstdc++-v3/testsuite/20_util/optional/constexpr/124910.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/20_util/optional/constexpr/124910.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/testsuite/20_util/optional/constexpr/124910.cc	Sun Apr 19 22:32:20 2026
***************
*** 0 ****
--- 1,74 ----
+ // { dg-do compile { target c++20 } }
+ 
+ // PR124910 - bogus 'std::optional{...}' is not a constant expression error
+ // after resetting it via '= nullopt'
+ 
+ #include <optional>
+ 
+ struct A
+ {
+   constexpr A(int m) : m(m) { }
+   int m;
+ };
+ 
+ struct B
+ {
+   constexpr B(int m) : m(m) { }
+   constexpr ~B() { }
+   int m;
+ };
+ 
+ static_assert(   std::is_trivially_destructible_v<int> );
+ static_assert(   std::is_trivially_destructible_v<A> );
+ static_assert( ! std::is_trivially_destructible_v<B> );
+ 
+ template<class T>
+ void
+ do_test()
+ {
+   constexpr std::optional<T> x1 = [] {
+     std::optional<T> o = 1;
+     o = std::nullopt;
+     return o;
+   }();
+ 
+   constexpr std::optional<T> x2 = [] {
+     std::optional<T> o = 1;
+     o.reset();
+     return o;
+   }();
+ 
+   constexpr std::optional<T> x3 = [] {
+     std::optional<T> o1 = 1;
+     std::optional<long> o2;
+     o1 = o2;
+     return o1;
+   }();
+ 
+   constexpr std::optional<T> x4 = [] {
+     std::optional<T> o1 = 1;
+     std::optional<long> o2;
+     o1 = std::move(o2);
+     return o1;
+   }();
+ 
+   constexpr std::optional<T> x5 = [] {
+     std::optional<T> o1 = 1;
+     std::optional<T> o2;
+     std::swap(o1, o2);
+     return o1;
+   }();
+ 
+   struct C : std::optional<T> {
+     constexpr C() : std::optional<T>(1) { this->reset(); }
+   };
+   constexpr C x6;
+ }
+ 
+ int
+ main()
+ {
+   do_test<int>();
+   do_test<A>();
+   do_test<B>();
+ }
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc gcc-16-20260419/libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc	Sun Apr 19 22:32:20 2026
***************
*** 0 ****
--- 1,81 ----
+ // { dg-do run { target c++26 } }
+ // N5014 29.5.4.5 Class Template philox_engine
+ 
+ #include <random>
+ #include <array>
+ 
+ #include <testsuite_hooks.h>
+ 
+ // Helper: set counter, skip one block (n outputs), then compare
+ // the next block against a reference engine at the expected counter.
+ template<typename Engine, std::size_t N>
+ void
+ verify_carry(const std::array<typename Engine::result_type, N>& current_counter,
+ 	     const std::array<typename Engine::result_type, N>& expected_incremented_counter)
+ {
+   Engine eng_a;
+   eng_a.set_counter(current_counter);
+   // Skip the block produced from current_counter
+   eng_a.discard(N);
+ 
+   Engine eng_b;
+   eng_b.set_counter(expected_incremented_counter);
+   // Both engines should now produce identical output
+   for (std::size_t i = 0; i < N; ++i)
+     VERIFY( eng_a() == eng_b() );
+ }
+ 
+ int main()
+ {
+   // philox4x32 (n=4, w=32)
+   verify_carry<std::philox4x32, 4>(std::array<std::philox4x32::result_type, 4>{0, 0, 0, 5},
+ 				   std::array<std::philox4x32::result_type, 4>{0, 0, 0, 6});
+   verify_carry<std::philox4x32, 4>(std::array<std::philox4x32::result_type, 4>{0, 0, 0, 0xFFFFFFFF},
+ 				   std::array<std::philox4x32::result_type, 4>{0, 0, 1, 0});
+   verify_carry<std::philox4x32, 4>(std::array<std::philox4x32::result_type, 4>{0, 0, 1, 0xFFFFFFFF},
+ 				   std::array<std::philox4x32::result_type, 4>{0, 0, 2, 0});
+   verify_carry<std::philox4x32, 4>(std::array<std::philox4x32::result_type, 4>{0, 0, 0xFFFFFFFF, 0xFFFFFFFF},
+ 				   std::array<std::philox4x32::result_type, 4>{0, 1, 0, 0});
+   verify_carry<std::philox4x32, 4>(std::array<std::philox4x32::result_type, 4>{0, 1, 0xFFFFFFFF, 0xFFFFFFFF},
+ 				   std::array<std::philox4x32::result_type, 4>{0, 2, 0, 0});
+   verify_carry<std::philox4x32, 4>(std::array<std::philox4x32::result_type, 4>{0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF},
+ 				   std::array<std::philox4x32::result_type, 4>{0, 0, 0, 0});
+ 
+   // philox4x64 (n=4, w=64)
+   constexpr auto philox4x64_max = std::philox4x64::max();
+   verify_carry<std::philox4x64, 4>(std::array<std::philox4x64::result_type, 4>{0, 0, 0, philox4x64_max},
+ 				   std::array<std::philox4x64::result_type, 4>{0, 0, 1, 0});
+   verify_carry<std::philox4x64, 4>(std::array<std::philox4x64::result_type, 4>{0, 0, 1, philox4x64_max},
+ 				   std::array<std::philox4x64::result_type, 4>{0, 0, 2, 0});
+   verify_carry<std::philox4x64, 4>(std::array<std::philox4x64::result_type, 4>{0, 0, philox4x64_max, philox4x64_max},
+ 				   std::array<std::philox4x64::result_type, 4>{0, 1, 0, 0});
+   verify_carry<std::philox4x64, 4>(std::array<std::philox4x64::result_type, 4>{0, 1, philox4x64_max, philox4x64_max},
+ 				   std::array<std::philox4x64::result_type, 4>{0, 2, 0, 0});
+   verify_carry<std::philox4x64, 4>(std::array<std::philox4x64::result_type, 4>{philox4x64_max, philox4x64_max, philox4x64_max, philox4x64_max},
+ 				   std::array<std::philox4x64::result_type, 4>{0, 0, 0, 0});
+ 
+   // philox2x32 (n=2, w=32)
+   using philox2x32 = std::philox_engine<std::uint_fast32_t,
+         32, 2, 10, 0xCD9E8D57, 0x9E3779B9>;
+   verify_carry<philox2x32, 2>(std::array<philox2x32::result_type, 2>{0, 5},
+ 			      std::array<philox2x32::result_type, 2>{0, 6});
+   verify_carry<philox2x32, 2>(std::array<philox2x32::result_type, 2>{0, 0xFFFFFFFF},
+ 			      std::array<philox2x32::result_type, 2>{1, 0});
+   verify_carry<philox2x32, 2>(std::array<philox2x32::result_type, 2>{1, 0xFFFFFFFF},
+ 			      std::array<philox2x32::result_type, 2>{2, 0});
+   verify_carry<philox2x32, 2>(std::array<philox2x32::result_type, 2>{0xFFFFFFFF, 0xFFFFFFFF},
+ 			      std::array<philox2x32::result_type, 2>{0, 0});
+ 
+   // philox2x64 (n=2, w=64)
+   using philox2x64 = std::philox_engine<std::uint_fast64_t,
+         64, 2, 10, 0xCD9E8D57, 0x9E3779B9>;
+   constexpr auto philox2x64_max = philox2x64::max();
+   verify_carry<philox2x64, 2>(std::array<philox2x64::result_type, 2>{0, 5},
+ 			      std::array<philox2x64::result_type, 2>{0, 6});
+   verify_carry<philox2x64, 2>(std::array<philox2x64::result_type, 2>{0, philox2x64_max},
+ 			      std::array<philox2x64::result_type, 2>{1, 0});
+   verify_carry<philox2x64, 2>(std::array<philox2x64::result_type, 2>{1, philox2x64_max},
+ 			      std::array<philox2x64::result_type, 2>{2, 0});
+   verify_carry<philox2x64, 2>(std::array<philox2x64::result_type, 2>{philox2x64_max, philox2x64_max},
+ 			      std::array<philox2x64::result_type, 2>{0, 0});
+ }
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc gcc-16-20260419/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc	Sun Apr 12 22:32:18 2026
--- gcc-16-20260419/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc	Sun Apr 19 22:32:20 2026
*************** test00()
*** 201,211 ****
--- 201,213 ----
      VERIFY(skips == 0);
    }
    { // long double
+ #if __LDBL_MANT_DIG__ != 106 // disable this for IBM double double
      int skips{};
      auto rng2{rng};
      auto rng3{rng};
      test01<long double>(rng2, rng3, skips);
      VERIFY(skips == 0);
+ #endif
    }
  #ifndef _GLIBCXX_GENERATE_CANONICAL_STRICT
  #  ifdef __SIZEOF_FLOAT128__
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/experimental/feat-cxx14.cc gcc-16-20260419/libstdc++-v3/testsuite/experimental/feat-cxx14.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/experimental/feat-cxx14.cc	Sun Apr 12 22:32:18 2026
--- gcc-16-20260419/libstdc++-v3/testsuite/experimental/feat-cxx14.cc	Sun Apr 19 22:32:20 2026
***************
*** 18,25 ****
  
  #ifndef  __cpp_lib_integer_sequence
  #  error "__cpp_lib_integer_sequence"
! #elif  __cpp_lib_integer_sequence != 201304
! #  error "__cpp_lib_integer_sequence != 201304"
  #endif
  
  #ifndef  __cpp_lib_exchange_function
--- 18,25 ----
  
  #ifndef  __cpp_lib_integer_sequence
  #  error "__cpp_lib_integer_sequence"
! #elif  __cpp_lib_integer_sequence < 201304
! #  error "__cpp_lib_integer_sequence < 201304"
  #endif
  
  #ifndef  __cpp_lib_exchange_function
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/std/format/fill.cc gcc-16-20260419/libstdc++-v3/testsuite/std/format/fill.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/std/format/fill.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/testsuite/std/format/fill.cc	Sun Apr 19 22:32:21 2026
***************
*** 0 ****
--- 1,56 ----
+ // { dg-options "-fexec-charset=UTF-8 -DUNICODE_ENC" }
+ // { dg-do run { target c++20 } }
+ 
+ #include <format>
+ #include <testsuite_hooks.h>
+ 
+ template<typename... Args>
+ bool
+ is_format_string_for(const char* str, Args&&... args)
+ {
+   try {
+     (void) std::vformat(str, std::make_format_args(args...));
+     return true;
+   } catch (const std::format_error&) {
+     return false;
+   }
+ }
+ 
+ template<typename T>
+ void
+ test_fill(T t)
+ {
+   constexpr bool accept_utf8_nonascii
+ #ifdef UNICODE_ENC
+    = true;
+ #else
+    = false;
+ #endif
+ 
+    VERIFY(is_format_string_for("{: <}", t));
+    VERIFY(is_format_string_for("{:Å<}", t));
+    // U+0119 Latin Small Letter E with Ogonek
+    VERIFY(is_format_string_for("{:\xC4\x99<}", t) == accept_utf8_nonascii);
+    // U+2705 White Heavy Check Mark
+    VERIFY(is_format_string_for("{:\xE2\x9C\x85<}", t) == accept_utf8_nonascii);
+    // U+1F602 Face with Tears of Joy
+    VERIFY(is_format_string_for("{:\xF0\x9F\x98\x82<}", t) == accept_utf8_nonascii);
+ }
+ 
+ struct MyStringView : std::string_view
+ {
+   using std::string_view::string_view;
+ };
+ 
+ template<>
+ struct std::formatter<MyStringView, char>
+   : std::formatter<std::string_view, char>
+ {};
+ 
+ int main()
+ {
+   test_fill(10);
+   test_fill(std::string_view("test"));
+   // Test with type stored by handle
+   test_fill(MyStringView("test"));
+ }
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/std/format/fill_nonunicode.cc gcc-16-20260419/libstdc++-v3/testsuite/std/format/fill_nonunicode.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/std/format/fill_nonunicode.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/testsuite/std/format/fill_nonunicode.cc	Sun Apr 19 22:32:21 2026
***************
*** 0 ****
--- 1,5 ----
+ // { dg-options "-fexec-charset=ISO8859-1" }
+ // { dg-do run { target c++20 } }
+ // { dg-add-options no_pch }
+ 
+ #include "fill.cc"
diff -Nrcpad gcc-16-20260412/libstdc++-v3/testsuite/std/memory/indirect/124890.cc gcc-16-20260419/libstdc++-v3/testsuite/std/memory/indirect/124890.cc
*** gcc-16-20260412/libstdc++-v3/testsuite/std/memory/indirect/124890.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260419/libstdc++-v3/testsuite/std/memory/indirect/124890.cc	Sun Apr 19 22:32:21 2026
***************
*** 0 ****
--- 1,9 ----
+ // { dg-do compile { target c++26 } }
+ 
+ // PR libstdc++/124890 - Circular constraint in std::indirect::operator==
+ 
+ #include <memory>
+ #include <vector>
+ 
+ using I = std::vector<std::indirect<int>>::iterator;
+ static_assert(std::totally_ordered<I>);
