diff -Nrcpad gcc-16-20260509/LAST_UPDATED gcc-16-20260516/LAST_UPDATED
*** gcc-16-20260509/LAST_UPDATED	Sat May  9 22:32:18 2026
--- gcc-16-20260516/LAST_UPDATED	Sat May 16 22:32:18 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-16 revision a24661a0d900d563359bba966c47869e2455dfee
--- 1 ----
! Obtained from git: releases/gcc-16 revision 0fba51e8f39b245a3c0c2b75dad2619ed749f320
diff -Nrcpad gcc-16-20260509/MD5SUMS gcc-16-20260516/MD5SUMS
*** gcc-16-20260509/MD5SUMS	Sat May  9 22:32:23 2026
--- gcc-16-20260516/MD5SUMS	Sat May 16 22:32:23 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260509.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260516.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 28,34 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f887b31894141ddea540ea3a9be02d7e  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! c33c0701fee897b76072cd5fa191046c  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
*************** f15bc3c5de22eac0bdd4f611502139a0  gcc/AB
*** 530,536 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! e7aa366170dd61b89e6236f3097182ff  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
! 2cabe06a8ae75b1e25b3fc250076f779  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
! 0b453f6fb61fdd32a447b28b2bb3c530  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 568,574 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 054e8d10efb5757d58004e83154de2ab  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/RE
*** 580,586 ****
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 2a1d36f92ec0694513c0812f6663f438  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
! d57665465e41f4c26ff2717d67f4a04b  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** f1c71b64e1c84e240c7b5aea7331a32a  gcc/ad
*** 735,741 ****
  53ad5bbe1307592cb0b72abbd090be7c  gcc/ada/einfo-utils.adb
  7d8424f0fa1f5c55e62289d1bb109135  gcc/ada/einfo-utils.ads
  97ce2e179e42e649dfe8affca8e3c302  gcc/ada/einfo.adb
! 24bfcb17dd546f237b920224086f07b2  gcc/ada/einfo.ads
  fef3bb4012357f98b9b104dfa3daee51  gcc/ada/elists.adb
  52dc293e77a753c73be5d02f2661369f  gcc/ada/elists.ads
  30a82f1a7c5bfcc4e8be8d79dc60e23e  gcc/ada/elists.h
--- 735,741 ----
  53ad5bbe1307592cb0b72abbd090be7c  gcc/ada/einfo-utils.adb
  7d8424f0fa1f5c55e62289d1bb109135  gcc/ada/einfo-utils.ads
  97ce2e179e42e649dfe8affca8e3c302  gcc/ada/einfo.adb
! 6fa3197b4db9381c4477c02c703ccf76  gcc/ada/einfo.ads
  fef3bb4012357f98b9b104dfa3daee51  gcc/ada/elists.adb
  52dc293e77a753c73be5d02f2661369f  gcc/ada/elists.ads
  30a82f1a7c5bfcc4e8be8d79dc60e23e  gcc/ada/elists.h
*************** e837e02763d429cb690f4aa38c5c1da2  gcc/ad
*** 802,808 ****
  ce990621220fd6489426c319eb93cec4  gcc/ada/exp_dist.ads
  23f9e2de53a292fd54bac01c5bf3a794  gcc/ada/exp_fixd.adb
  a68a87f80c2a7f799dba65186bf644df  gcc/ada/exp_fixd.ads
! d308cb3a0264221f369b7f0ab346926a  gcc/ada/exp_imgv.adb
  34fc29154c68ffe19f5d9e5cb9f5be59  gcc/ada/exp_imgv.ads
  ee534f378918dac3d346695bf4bcf9a2  gcc/ada/exp_intr.adb
  98fffa8af9ba75158eeab9097a7838a3  gcc/ada/exp_intr.ads
--- 802,808 ----
  ce990621220fd6489426c319eb93cec4  gcc/ada/exp_dist.ads
  23f9e2de53a292fd54bac01c5bf3a794  gcc/ada/exp_fixd.adb
  a68a87f80c2a7f799dba65186bf644df  gcc/ada/exp_fixd.ads
! 69449d2ad4a142d9ecb0cfa80cd80ce1  gcc/ada/exp_imgv.adb
  34fc29154c68ffe19f5d9e5cb9f5be59  gcc/ada/exp_imgv.ads
  ee534f378918dac3d346695bf4bcf9a2  gcc/ada/exp_intr.adb
  98fffa8af9ba75158eeab9097a7838a3  gcc/ada/exp_intr.ads
*************** c10afb784d01db96d3e446e834044dec  gcc/ad
*** 865,871 ****
  a42ca7a70ecb27ca641d7e22801cdc56  gcc/ada/gcc-interface/utils.cc
  5aa7aec67976f00fbfd0e838865ac865  gcc/ada/gcc-interface/utils2.cc
  d5e790917c3bb105f9c562fc40e9bdce  gcc/ada/gen_il-fields.ads
! c3f2b097736c12f7ec056f8c4f33c170  gcc/ada/gen_il-gen-gen_entities.adb
  3f142f6080a505c4b3aa2889c4d68af4  gcc/ada/gen_il-gen-gen_nodes.adb
  7091bf4b26ab64fe3d88bd3feb79b94f  gcc/ada/gen_il-gen.adb
  ce980375550bc71a64634141fbbcf330  gcc/ada/gen_il-gen.ads
--- 865,871 ----
  a42ca7a70ecb27ca641d7e22801cdc56  gcc/ada/gcc-interface/utils.cc
  5aa7aec67976f00fbfd0e838865ac865  gcc/ada/gcc-interface/utils2.cc
  d5e790917c3bb105f9c562fc40e9bdce  gcc/ada/gen_il-fields.ads
! 5555ee464387437fa4bdf68050ab6962  gcc/ada/gen_il-gen-gen_entities.adb
  3f142f6080a505c4b3aa2889c4d68af4  gcc/ada/gen_il-gen-gen_nodes.adb
  7091bf4b26ab64fe3d88bd3feb79b94f  gcc/ada/gen_il-gen.adb
  ce980375550bc71a64634141fbbcf330  gcc/ada/gen_il-gen.ads
*************** ea821c9d267c64dd8b74aad9d0189834  gcc/c-
*** 3329,3335 ****
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! fa1258dacc787e4e3e4f80731c4b5f10  gcc/c/ChangeLog
  cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
--- 3329,3335 ----
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! 576b48de4853b7fa218e307b1840217f  gcc/c/ChangeLog
  cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
*************** a59a5f126151616976b68fde0c703dd4  gcc/c/
*** 3340,3346 ****
  62012039da265ed806754029f67a24a9  gcc/c/c-lang.h
  1c2de79d0807af2a767aa7abefb07c3a  gcc/c/c-objc-common.cc
  cbfdd140f14c43c01a6bdf8b1c24b317  gcc/c/c-objc-common.h
! bb645136b8228c4df81f31b878165339  gcc/c/c-parser.cc
  f6b634d7c0204c419cf4fb7b48193fad  gcc/c/c-parser.h
  4db955734effe2d0c9aac0379d2e6a8c  gcc/c/c-tree.def
  2bb3aa7e53e3cbc63125f017f4a5d67e  gcc/c/c-tree.h
--- 3340,3346 ----
  62012039da265ed806754029f67a24a9  gcc/c/c-lang.h
  1c2de79d0807af2a767aa7abefb07c3a  gcc/c/c-objc-common.cc
  cbfdd140f14c43c01a6bdf8b1c24b317  gcc/c/c-objc-common.h
! 5c03e6237681f8ca9e2a81709f22ebb2  gcc/c/c-parser.cc
  f6b634d7c0204c419cf4fb7b48193fad  gcc/c/c-parser.h
  4db955734effe2d0c9aac0379d2e6a8c  gcc/c/c-tree.def
  2bb3aa7e53e3cbc63125f017f4a5d67e  gcc/c/c-tree.h
*************** b05978bd2969a943265d3549c23b8b59  gcc/co
*** 3875,3881 ****
  7694efecfa1a86f5d70c1dcee34a8ffd  gcc/config/avr/avr-passes.def
  6033224c6e10fc0028d72d05ef4adc70  gcc/config/avr/avr-protos.h
  4ee8705558d223eb1da7a1266af8c799  gcc/config/avr/avr-stdint.h
! b573ae5e0c9a5b17804044fa43a5c9e1  gcc/config/avr/avr.cc
  a4c128a5989d02ad75000ddce5204e45  gcc/config/avr/avr.h
  b90ae914b2f6999e93154cd4ee679348  gcc/config/avr/avr.md
  952a12d62229d3077f49f68614cf8be4  gcc/config/avr/avr.opt
--- 3875,3881 ----
  7694efecfa1a86f5d70c1dcee34a8ffd  gcc/config/avr/avr-passes.def
  6033224c6e10fc0028d72d05ef4adc70  gcc/config/avr/avr-protos.h
  4ee8705558d223eb1da7a1266af8c799  gcc/config/avr/avr-stdint.h
! a9586cfcef72e5e02e3b584251e6542d  gcc/config/avr/avr.cc
  a4c128a5989d02ad75000ddce5204e45  gcc/config/avr/avr.h
  b90ae914b2f6999e93154cd4ee679348  gcc/config/avr/avr.md
  952a12d62229d3077f49f68614cf8be4  gcc/config/avr/avr.opt
*************** d9c8993192f71fd754cf947dfccacee6  gcc/co
*** 3885,3896 ****
  dcd40301975d7f922b3fc51ba7ab1096  gcc/config/avr/constraints.md
  ec06c3cb0febed0066782b6d9fc52013  gcc/config/avr/driver-avr.cc
  ac632b1dc99f00909fa89603958f6495  gcc/config/avr/elf.h
! c1c7ae14d1c2186be7c197667bd1ef14  gcc/config/avr/gen-avr-mmcu-specs.cc
  54df79db0299d2ad33b18cdba6706e83  gcc/config/avr/gen-avr-mmcu-texi.cc
  1a5c508b77e0fdec3eba4025fad143e4  gcc/config/avr/genmultilib.awk
  3e1985cc514729064bd7289a7a1050a0  gcc/config/avr/predicates.md
  989371a0c0bef067b04f2ca6cab339f8  gcc/config/avr/ranges.h
! b40823c113c4f4c97c7877f00e4f49dd  gcc/config/avr/specs.h
  71f81820bdeb307527c4c7b577e056de  gcc/config/avr/stdfix.h
  c543f228dfe0842eef779abf3c3657a8  gcc/config/avr/t-avr
  adc4a61b44f06a4fbd2f535ba35ef825  gcc/config/bfin/bfin-modes.def
--- 3885,3896 ----
  dcd40301975d7f922b3fc51ba7ab1096  gcc/config/avr/constraints.md
  ec06c3cb0febed0066782b6d9fc52013  gcc/config/avr/driver-avr.cc
  ac632b1dc99f00909fa89603958f6495  gcc/config/avr/elf.h
! 7deab294c9247a181703b204a0b783b8  gcc/config/avr/gen-avr-mmcu-specs.cc
  54df79db0299d2ad33b18cdba6706e83  gcc/config/avr/gen-avr-mmcu-texi.cc
  1a5c508b77e0fdec3eba4025fad143e4  gcc/config/avr/genmultilib.awk
  3e1985cc514729064bd7289a7a1050a0  gcc/config/avr/predicates.md
  989371a0c0bef067b04f2ca6cab339f8  gcc/config/avr/ranges.h
! 95ad97cfa72d237935c2af12b2bd398c  gcc/config/avr/specs.h
  71f81820bdeb307527c4c7b577e056de  gcc/config/avr/stdfix.h
  c543f228dfe0842eef779abf3c3657a8  gcc/config/avr/t-avr
  adc4a61b44f06a4fbd2f535ba35ef825  gcc/config/bfin/bfin-modes.def
*************** b63569ecff9557acb7963f14a101bce1  gcc/co
*** 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
! 71d4fbaeb19925f76b35a547b3cedb17  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
  b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
  7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
--- 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
! abf774703818fb97d5522e038bb2f126  gcc/config/i386/i386.cc
  483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
! 5621ba7686cf6df650cfb9dd6cde9013  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
*** 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
--- 4369,4375 ----
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! 938b53a530cc188b4b883b04798198c7  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
  a626b4e6cd3e15f4e9d5c769b6391243  gcc/config/i386/subst.md
*************** f32c20d7692c70c82ac87146bec2f392  gcc/co
*** 4505,4511 ****
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
  2e83330f4ee66f66f14df91ea93921b1  gcc/config/lm32/uclinux-elf.h
! 4fb06f2c99569f008f3fbb89d269dc3b  gcc/config/loongarch/constraints.md
  1daa90ebfa4ead5dd59e8ab6f57feaa8  gcc/config/loongarch/elf.h
  cb159a12ebab737430be10b5df70f1bf  gcc/config/loongarch/generic.md
  8e283bf964d7a7463b18468b5b757c3d  gcc/config/loongarch/genopts/gen-evolution.awk
--- 4505,4511 ----
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
  2e83330f4ee66f66f14df91ea93921b1  gcc/config/lm32/uclinux-elf.h
! ff2089aaa3dfe6d6a6c26f0b2bfbf34a  gcc/config/loongarch/constraints.md
  1daa90ebfa4ead5dd59e8ab6f57feaa8  gcc/config/loongarch/elf.h
  cb159a12ebab737430be10b5df70f1bf  gcc/config/loongarch/generic.md
  8e283bf964d7a7463b18468b5b757c3d  gcc/config/loongarch/genopts/gen-evolution.awk
*************** dc2f2182b815a3d30579f3cd907f60ea  gcc/co
*** 4537,4555 ****
  c7eeb48ab4223ecfdb09fa5e4ce61d71  gcc/config/loongarch/loongarch-modes.def
  4f6f228dac0484d6ba3fbad6ddb6d8af  gcc/config/loongarch/loongarch-opts.cc
  5e852be9fbcd6b98822c986918099da1  gcc/config/loongarch/loongarch-opts.h
! f42170d324293ddaaf014bfe990b848b  gcc/config/loongarch/loongarch-protos.h
  dadec2097ca9c4947a49a5766ac8ee89  gcc/config/loongarch/loongarch-str.h
  fc623524d75c7561f85f81615ecad0ac  gcc/config/loongarch/loongarch-target-attr.cc
  3cfb174db8bc99a9361e597a3e9bd35e  gcc/config/loongarch/loongarch-tune.h
! f1fea05446a25ec5fbfc33c701e8ae20  gcc/config/loongarch/loongarch.cc
  44710020cadd48029a693da29d33aaf0  gcc/config/loongarch/loongarch.h
! 1b11d059c390458cbbf8e16a8efa5e6f  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
  387011bb9dde5e25493f3602b2fd17bb  gcc/config/loongarch/loongarch.opt.urls
  561a66379ab213d1901626005734b467  gcc/config/loongarch/lsx.md
  c7466e5dbde45f48269999a0ee23e193  gcc/config/loongarch/lsxintrin.h
  fe51977e0ac69b0829287b1c8d3f5060  gcc/config/loongarch/musl.h
! 55f55f0084d1c0ba8a1c1d5015b69af7  gcc/config/loongarch/predicates.md
  f91faa5449d6dd76f5957fa796f00464  gcc/config/loongarch/simd.md
  2e69737d13e1bfc019d62d20daa42769  gcc/config/loongarch/sync.md
  70d4362e3209c6d2b4d8ad4c79d65a4c  gcc/config/loongarch/t-linux
--- 4537,4555 ----
  c7eeb48ab4223ecfdb09fa5e4ce61d71  gcc/config/loongarch/loongarch-modes.def
  4f6f228dac0484d6ba3fbad6ddb6d8af  gcc/config/loongarch/loongarch-opts.cc
  5e852be9fbcd6b98822c986918099da1  gcc/config/loongarch/loongarch-opts.h
! 49b2aa817558104dbb573a33ececbecb  gcc/config/loongarch/loongarch-protos.h
  dadec2097ca9c4947a49a5766ac8ee89  gcc/config/loongarch/loongarch-str.h
  fc623524d75c7561f85f81615ecad0ac  gcc/config/loongarch/loongarch-target-attr.cc
  3cfb174db8bc99a9361e597a3e9bd35e  gcc/config/loongarch/loongarch-tune.h
! e9dd9aa1d7f42b839457347be97e4889  gcc/config/loongarch/loongarch.cc
  44710020cadd48029a693da29d33aaf0  gcc/config/loongarch/loongarch.h
! adc166d1f0d499682e5ce2d43178115d  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
  387011bb9dde5e25493f3602b2fd17bb  gcc/config/loongarch/loongarch.opt.urls
  561a66379ab213d1901626005734b467  gcc/config/loongarch/lsx.md
  c7466e5dbde45f48269999a0ee23e193  gcc/config/loongarch/lsxintrin.h
  fe51977e0ac69b0829287b1c8d3f5060  gcc/config/loongarch/musl.h
! 99f3bb1790c2cf94d293e7b4064693e8  gcc/config/loongarch/predicates.md
  f91faa5449d6dd76f5957fa796f00464  gcc/config/loongarch/simd.md
  2e69737d13e1bfc019d62d20daa42769  gcc/config/loongarch/sync.md
  70d4362e3209c6d2b4d8ad4c79d65a4c  gcc/config/loongarch/t-linux
*************** b85e0e83df79d2f49435f8e4a8992866  gcc/co
*** 4673,4679 ****
  3c3dc8be46b778f5ae37e34d464e3671  gcc/config/mingw/winnt-dll.cc
  8d146495102e58eb8547fbe9ddbe3244  gcc/config/mingw/winnt-dll.h
  6c4d1792e7729f1a305e9f345c12693f  gcc/config/mingw/winnt-stubs.cc
! 112a3c159dc847088cfbd1f2ec04d765  gcc/config/mingw/winnt.cc
  d3366b857e20f558be77198d166b068f  gcc/config/mingw/winnt.h
  d67c65c648990c8cc128e82dcf27ee3e  gcc/config/mips/10000.md
  438f714e597ac4900ae547323e93a15b  gcc/config/mips/20kc.md
--- 4673,4679 ----
  3c3dc8be46b778f5ae37e34d464e3671  gcc/config/mingw/winnt-dll.cc
  8d146495102e58eb8547fbe9ddbe3244  gcc/config/mingw/winnt-dll.h
  6c4d1792e7729f1a305e9f345c12693f  gcc/config/mingw/winnt-stubs.cc
! 6fa861f48d6ecdd155488fb6c02c98d7  gcc/config/mingw/winnt.cc
  d3366b857e20f558be77198d166b068f  gcc/config/mingw/winnt.h
  d67c65c648990c8cc128e82dcf27ee3e  gcc/config/mips/10000.md
  438f714e597ac4900ae547323e93a15b  gcc/config/mips/20kc.md
*************** ea440bcad8a276afecfcff0ce6aae6fe  gcc/co
*** 5362,5370 ****
  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
  90a97a731513f3119bb12e022497e9ab  gcc/config/s390/s390.opt.urls
  07efe01a921b4fb261d6e59abf21a268  gcc/config/s390/s390intrin.h
--- 5362,5370 ----
  14c40f85d99aad740c052f55703baf70  gcc/config/s390/s390-opts.h
  aa396b24681954cbcd0cd64bf19d469c  gcc/config/s390/s390-passes.def
  4a9d0190b77f29fbb14fa9706732f297  gcc/config/s390/s390-protos.h
! 20f3b2de8a42040bfaa0b0e10128f9a1  gcc/config/s390/s390.cc
  c945413f70f4d804e12812f916b8d87b  gcc/config/s390/s390.h
! 5dfce09ce6b607fae082f3f41a419c7b  gcc/config/s390/s390.md
  ae1754efd7785ad08c6cc930dd08c7ae  gcc/config/s390/s390.opt
  90a97a731513f3119bb12e022497e9ab  gcc/config/s390/s390.opt.urls
  07efe01a921b4fb261d6e59abf21a268  gcc/config/s390/s390intrin.h
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5644,5650 ****
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 184dd0ace400f3e8149ac3d375927d7b  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5644,5650 ----
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 7cc7cdcbf01adf6f4392875dccfbf651  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** f39635970f98bbc4591f6363fe70504b  gcc/cp
*** 5681,5692 ****
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  d9b8a76735523ab737e8778b90397d97  gcc/cp/Make-lang.in
! 689c8a6810ac9e15b64d4e745bda0f11  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
  454f3c75a5a8d9c0a8b425ca72add469  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! b7c189a1115cf06a041b94bc583174e4  gcc/cp/constexpr.cc
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
  ab81cc984e2b72c49098e64c4e798924  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
--- 5681,5692 ----
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  d9b8a76735523ab737e8778b90397d97  gcc/cp/Make-lang.in
! b1ea0d0ed485b0b4279a7cacc155dd5e  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
  454f3c75a5a8d9c0a8b425ca72add469  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! 751c96394d229fa9d3b5fc6794a60e26  gcc/cp/constexpr.cc
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
  ab81cc984e2b72c49098e64c4e798924  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
*************** eba8d8a1725223519fba5d4d69afd5c9  gcc/cp
*** 5699,5711 ****
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! 9f45dd7085bfc7c87d5c682b31c5fd82  gcc/cp/cp-tree.h
  e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
  0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 18af1f344ba9b278f668588426cda250  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
--- 5699,5711 ----
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! 04f8a800958d52e83a9a76c419a8d5ce  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
! 3155c27d2c38ab40a2768045ec5a0a11  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
*************** e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp
*** 5727,5748 ****
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
  db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 7a054b0a8f2a4e64719fb4f89d284945  gcc/cp/module.cc
  79b07b3ec2f0827645bcac2f0107f883  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
  e597ab171ad27c93ec4d074abe445c67  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! fdae1d6bf4a94754b894dddec7fe89b8  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 81b3524c6af67713b5429138777414a4  gcc/cp/reflect.cc
! 97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 9790807578e1c4db5aa20758424fb3ef  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! c9afe2a322d65c7cad632339b6db595d  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  1e689d5f7a1facc6ce4b51aaa96636aa  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
--- 5727,5748 ----
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
  db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 72c10837c969d41a189d17d5027d9bbb  gcc/cp/module.cc
  79b07b3ec2f0827645bcac2f0107f883  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
  e597ab171ad27c93ec4d074abe445c67  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! c56521f75ad23ab02b8b56c245068534  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 2fc252eabd622c1440e12a6f0151cdac  gcc/cp/reflect.cc
! 6ae3f1ff3ba804579da14445501f9181  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 3674a29587a15f07988d823cdf6945cf  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 2f56cf596fc930fe29fe26279116d012  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  1e689d5f7a1facc6ce4b51aaa96636aa  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 6269,6275 ****
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! ee38db0c8af3e5bf80655429c04b25ea  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
! 8271246df7717907545de157117b785b  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** cbdc87ddd4ad5837f1771e93f704a33e  gcc/fo
*** 6357,6371 ****
  ef5ff085d6f19e0b84135e46b7281b70  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
! e52cc479259ccde25f372f6e15478a65  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
! 910ecb3b9cbacbba105f1752cef0504e  gcc/fortran/trans-decl.cc
  7587366d5466b3ccf2ecc3152adf9e0c  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
--- 6357,6371 ----
  ef5ff085d6f19e0b84135e46b7281b70  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
! 40cb236ccb42c8f778d277fc59baaae9  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
! 7e1db648698cdafbef4aaf15e5132da7  gcc/fortran/trans-decl.cc
  7587366d5466b3ccf2ecc3152adf9e0c  gcc/fortran/trans-expr.cc
  1e9019ec9c08335a5b10db9869e2534c  gcc/fortran/trans-intrinsic.cc
! 269d2b121570a82898b133a3274071a7  gcc/fortran/trans-io.cc
  a7dd5c301725a5395b938c4328a5e0d3  gcc/fortran/trans-openmp.cc
  974f8aeec761eac4ee1be974addd51d5  gcc/fortran/trans-stmt.cc
  6fbc90714f9730e84515bbaadff313f9  gcc/fortran/trans-stmt.h
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7880,7886 ****
  2a18164ee5f162ac117e6fedb58158a2  gcc/machmode.def
  0c9209452a934f189aa0860038b3a65c  gcc/machmode.h
  197298337dae14fdd7ab928a1f03bec6  gcc/main.cc
! 3a581d95d554a73a9dbd3fc292e06f1f  gcc/match.pd
  b106a08a1793a5495dd87c412456484b  gcc/mcf.cc
  897c541ca992e145ad451c98941c7647  gcc/mem-stats-traits.h
  4f86eeea7af520ce0b773c1f2e34b5b4  gcc/mem-stats.h
--- 7880,7886 ----
  2a18164ee5f162ac117e6fedb58158a2  gcc/machmode.def
  0c9209452a934f189aa0860038b3a65c  gcc/machmode.h
  197298337dae14fdd7ab928a1f03bec6  gcc/main.cc
! c7ea174676bff93b910a49f269188e4f  gcc/match.pd
  b106a08a1793a5495dd87c412456484b  gcc/mcf.cc
  897c541ca992e145ad451c98941c7647  gcc/mem-stats-traits.h
  4f86eeea7af520ce0b773c1f2e34b5b4  gcc/mem-stats.h
*************** f24751f278bee1ac8dc861467d9f96a3  gcc/ta
*** 8724,8730 ****
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 3af77af1cd98447044a4c6be8d1a3e5e  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8724,8730 ----
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! e835cee60b3bbf01e2010258d39a89b4  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** e82c7b7752e66456db57ee27e9f0dea7  gcc/te
*** 20286,20291 ****
--- 20286,20292 ----
  c9f6665aa9cce2133e7c5f9edba34076  gcc/testsuite/c-c++-common/pr121159.c
  f938d650e5405e1ae04ff131a9239d66  gcc/testsuite/c-c++-common/pr122188.c
  9644c5632092fc15f618c4092e7e502f  gcc/testsuite/c-c++-common/pr123437.c
+ 4d076347f661059e251ba973750b8ed5  gcc/testsuite/c-c++-common/pr124532.c
  f5dce8e27cfb8a6bfffe57596fecb796  gcc/testsuite/c-c++-common/pr19807-1.c
  8a7d9a8dd4af1ada80ca6a4b3201e073  gcc/testsuite/c-c++-common/pr19807-2.c
  39c0873a2c1c7f951e8b2f90ebc9e12d  gcc/testsuite/c-c++-common/pr19807-3.c
*************** a7b34171000020208252212900f8f284  gcc/te
*** 27785,27790 ****
--- 27786,27793 ----
  c0ccc113d7cebb8f49a0532a92a7fe6a  gcc/testsuite/g++.dg/cpp1z/nontype-auto24.C
  84c3bcb0e6e5796176c169f244e21f18  gcc/testsuite/g++.dg/cpp1z/nontype-auto25.C
  29281f328d481246b83a7cf412166e27  gcc/testsuite/g++.dg/cpp1z/nontype-auto26.C
+ 8f52b6e337b114137400378ca687d3af  gcc/testsuite/g++.dg/cpp1z/nontype-auto27.C
+ 6e591e1ed65134ac62dfaa2a499ffad2  gcc/testsuite/g++.dg/cpp1z/nontype-auto28.C
  cd20029423efae4adb87e862f927bf40  gcc/testsuite/g++.dg/cpp1z/nontype-auto3.C
  b7708449a230c66742c4b7273cffd6ff  gcc/testsuite/g++.dg/cpp1z/nontype-auto4.C
  1402258969b8e2de72b5d503776c4a4d  gcc/testsuite/g++.dg/cpp1z/nontype-auto5.C
*************** e95698a38fe4cc0a60b4857fa65742ca  gcc/te
*** 29357,29362 ****
--- 29360,29366 ----
  dd49d8873bb047040bf7f60deb8f644f  gcc/testsuite/g++.dg/cpp2a/no_unique_address13.C
  10563ae733ee31b86846cfb852d66d9d  gcc/testsuite/g++.dg/cpp2a/no_unique_address14.C
  9c8ff2d9f37699b8813711a0c20c7e07  gcc/testsuite/g++.dg/cpp2a/no_unique_address15.C
+ 46008c21cb7f7725a5bfe2a87f3b255d  gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C
  c94ac6fb1a99bf541b66d604620fa09b  gcc/testsuite/g++.dg/cpp2a/no_unique_address2.C
  67a61649264fea12fb7cc5c31bc5313e  gcc/testsuite/g++.dg/cpp2a/no_unique_address3.C
  ca2c81baf4111b5e8e15980b5237a344  gcc/testsuite/g++.dg/cpp2a/no_unique_address4.C
*************** c78f774590fd68025c389ab4361f5714  gcc/te
*** 29450,29455 ****
--- 29454,29460 ----
  506f070d3467e5b0df571bcdbd69aad8  gcc/testsuite/g++.dg/cpp2a/nontype-class71.C
  4a2f2d8385e6b854507e3edd81bfde1e  gcc/testsuite/g++.dg/cpp2a/nontype-class72.C
  5026844e08700f623ba7b14a5b49f436  gcc/testsuite/g++.dg/cpp2a/nontype-class73.C
+ f0748d73651336110f1e32c48320d24e  gcc/testsuite/g++.dg/cpp2a/nontype-class75.C
  44a04e768668501da12fed78805a7d70  gcc/testsuite/g++.dg/cpp2a/nontype-class8.C
  bae1c36e9d9dcb762070154c47a6b3c3  gcc/testsuite/g++.dg/cpp2a/nontype-class9.C
  be21ab07ff4b8655deffc37a85075c52  gcc/testsuite/g++.dg/cpp2a/nontype-complex1.C
*************** db3ce0a3a66a8608a8e090b8c9d765e9  gcc/te
*** 29610,29615 ****
--- 29615,29621 ----
  15d8852abeec5772820ae98eb7eaba47  gcc/testsuite/g++.dg/cpp2a/spaceship-union1.C
  894dc2618d8240d82bbbd6fa81e459f0  gcc/testsuite/g++.dg/cpp2a/spaceship-vec1.C
  0970f285ffbf72900993c2240e49583b  gcc/testsuite/g++.dg/cpp2a/spaceship-virtual1.C
+ db98c6a381b6d600ac7fd82ef0ccb5c7  gcc/testsuite/g++.dg/cpp2a/spaceship-warn1.C
  bca03d65e166f32cbeed0699c7c57e41  gcc/testsuite/g++.dg/cpp2a/spaceship-weak1.C
  450162c9df6c789ff19c8cbd1f169756  gcc/testsuite/g++.dg/cpp2a/srcloc1.C
  8222403f1fb2288f8690d23e3822c9a6  gcc/testsuite/g++.dg/cpp2a/srcloc10.C
*************** ba996bbdd4fa7d29eb83826ce56286db  gcc/te
*** 37443,37448 ****
--- 37449,37455 ----
  79b6c11dad254773021e78868fb03cbb  gcc/testsuite/g++.dg/reflect/adl1.C
  5c46e879dd2e662303fadc44a009d5a0  gcc/testsuite/g++.dg/reflect/alias1.C
  b6b6837c9c6945d15aae1007c9655611  gcc/testsuite/g++.dg/reflect/alias2.C
+ 38a421a55fc2792d218194eb7fec422e  gcc/testsuite/g++.dg/reflect/alias3.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
*************** bae6d6398266dd286951a779994c5fea  gcc/te
*** 37467,37480 ****
--- 37474,37490 ----
  240095cc5fa8d5e850cc3b6a3df6cdf5  gcc/testsuite/g++.dg/reflect/anon2.C
  c43e40fe08389dac58e1fabc0937b315  gcc/testsuite/g++.dg/reflect/anon3.C
  952c09f4c08d3854d99361fdfcff4fb9  gcc/testsuite/g++.dg/reflect/anon4.C
+ 2b08ddceb5f6742ed35aea8fe9d7d45e  gcc/testsuite/g++.dg/reflect/anon5.C
  71a5a17d31dea5a7a7d60fd3b36453dc  gcc/testsuite/g++.dg/reflect/bases_of1.C
  50d204becc5a564d003524bbda54d480  gcc/testsuite/g++.dg/reflect/bases_of2.C
  a3ca02798bae6834626899e3f48626d9  gcc/testsuite/g++.dg/reflect/bases_of3.C
  f31771b6d142554bef46d22e7ebe37ed  gcc/testsuite/g++.dg/reflect/bases_of4.C
+ 8d37e56fd9c7ad7b03647b9d62cfd01e  gcc/testsuite/g++.dg/reflect/bases_of5.C
  817512416d8343f0871b4548743aabf7  gcc/testsuite/g++.dg/reflect/bit_cast.C
  118a467750da473b2ad68973e520b6c9  gcc/testsuite/g++.dg/reflect/bit_size_of1.C
  cdfee9c92cd1c39030b9538abaa0bbc0  gcc/testsuite/g++.dg/reflect/bitfield1.C
  26489e1481d28e38679c10fb0945c3d0  gcc/testsuite/g++.dg/reflect/can_substitute1.C
+ 495b5815adcc239b485058f793eac47e  gcc/testsuite/g++.dg/reflect/can_substitute2.C
  cf1ce97bd56b5845905e4696d6e21793  gcc/testsuite/g++.dg/reflect/class1.C
  7e1297bc870fe6904620a1d784bd3929  gcc/testsuite/g++.dg/reflect/class2.C
  92d9b5b1bf8f84c19d0b739b4cf4482c  gcc/testsuite/g++.dg/reflect/common_reference1.C
*************** ae495996d548d703161c69615987ad3a  gcc/te
*** 37638,37643 ****
--- 37648,37654 ----
  fc8eb9caec31ed43b28a325abfd37d2c  gcc/testsuite/g++.dg/reflect/extract1.C
  d06fc880f882040192ade82d9d976678  gcc/testsuite/g++.dg/reflect/extract10.C
  e84593bf159c34f20e485a74c1b6a95e  gcc/testsuite/g++.dg/reflect/extract11.C
+ 9a702f843b31ff0bfee41a0e1e3d045f  gcc/testsuite/g++.dg/reflect/extract12.C
  44596b8acd054952983a5a4fb33bd17a  gcc/testsuite/g++.dg/reflect/extract2.C
  515a58bb25a97ee5979dc2cc0a4acce9  gcc/testsuite/g++.dg/reflect/extract3.C
  31ce562c358fd306cdee178e270282ea  gcc/testsuite/g++.dg/reflect/extract4.C
*************** aa8f04eae840cf292352166e158cfd5c  gcc/te
*** 37681,37686 ****
--- 37692,37698 ----
  8e50886b33b97c105f268ac4464d550c  gcc/testsuite/g++.dg/reflect/init16.C
  d90fcc99ddaeb5505678c7c407e0ab75  gcc/testsuite/g++.dg/reflect/init17.C
  dabe4ff7939752efdbbb1268dec52d43  gcc/testsuite/g++.dg/reflect/init18.C
+ ad250c99277937010b4bff3a40b50e9e  gcc/testsuite/g++.dg/reflect/init19.C
  314f62be0110f9e0a46fdc1b7585aebd  gcc/testsuite/g++.dg/reflect/init2.C
  0512b3bdec0b0fd28051477e9423aa67  gcc/testsuite/g++.dg/reflect/init3.C
  d46e1560ddd6be61c86743909c517b4e  gcc/testsuite/g++.dg/reflect/init4.C
*************** d1fd504ae938ad7e3b0edbf6834ec3b4  gcc/te
*** 37810,37815 ****
--- 37822,37828 ----
  c44e1d6dfaecfb4f263c78b17ed1b8c7  gcc/testsuite/g++.dg/reflect/members_of11.C
  623575016974295708d960e75d733062  gcc/testsuite/g++.dg/reflect/members_of12.C
  a2c5daff71c5cc0345db4bd0e912e669  gcc/testsuite/g++.dg/reflect/members_of13.C
+ 07a4631eea7fe0c6bdb296ca77c1d3a2  gcc/testsuite/g++.dg/reflect/members_of14.C
  689453102e4425f8d2c4ff89cb939595  gcc/testsuite/g++.dg/reflect/members_of2.C
  80a032eb31d0998f2d288e303356773a  gcc/testsuite/g++.dg/reflect/members_of3.C
  5ececa99994de569abffae1671b71870  gcc/testsuite/g++.dg/reflect/members_of4.C
*************** ef83de902dee2f6fe942c29156f8503f  gcc/te
*** 37960,37966 ****
  deddb1584f584cf686cd42b793483827  gcc/testsuite/g++.dg/reflect/subobjects_of1.C
  61f47186bb7769959e6cbcf0b286ddbe  gcc/testsuite/g++.dg/reflect/substitute1.C
  7412640ef90c2fa539ef91699f15ed14  gcc/testsuite/g++.dg/reflect/substitute2.C
! fb988bd3ed4b676491a6a1bc94c867aa  gcc/testsuite/g++.dg/reflect/substitute3.C
  e24c084d73cca9b28a4c473c5918117f  gcc/testsuite/g++.dg/reflect/substitute4.C
  127280869c2a6dcc31194aacecdbe006  gcc/testsuite/g++.dg/reflect/substitute5.C
  38ca28226f1eeb270c2ef69782415db2  gcc/testsuite/g++.dg/reflect/substitute6.C
--- 37973,37979 ----
  deddb1584f584cf686cd42b793483827  gcc/testsuite/g++.dg/reflect/subobjects_of1.C
  61f47186bb7769959e6cbcf0b286ddbe  gcc/testsuite/g++.dg/reflect/substitute1.C
  7412640ef90c2fa539ef91699f15ed14  gcc/testsuite/g++.dg/reflect/substitute2.C
! 61c9964eb5a189346222b6f24cda019f  gcc/testsuite/g++.dg/reflect/substitute3.C
  e24c084d73cca9b28a4c473c5918117f  gcc/testsuite/g++.dg/reflect/substitute4.C
  127280869c2a6dcc31194aacecdbe006  gcc/testsuite/g++.dg/reflect/substitute5.C
  38ca28226f1eeb270c2ef69782415db2  gcc/testsuite/g++.dg/reflect/substitute6.C
*************** ff49ad2327b77188c9be7008d37b0fa1  gcc/te
*** 37979,37984 ****
--- 37992,37999 ----
  108c9f28791a9fec38b31b04cf7ec18f  gcc/testsuite/g++.dg/reflect/type1.C
  7ddd44fc3b31dc7a9800814c464043fa  gcc/testsuite/g++.dg/reflect/type10.C
  9c43b4082295c4623ff424298cbfe7f6  gcc/testsuite/g++.dg/reflect/type11.C
+ 193b9ee859ea109db1d83dd7ea88e4b4  gcc/testsuite/g++.dg/reflect/type12.C
+ 9d76d02bf58fe7d868b80aa5c0dc3814  gcc/testsuite/g++.dg/reflect/type13.C
  b468479b1feb70e677c72b4fb0612f94  gcc/testsuite/g++.dg/reflect/type2.C
  d8a3c8c16d619e634a0ac785558d78a3  gcc/testsuite/g++.dg/reflect/type3.C
  1ea86d8cc75b073a21cfdfda5218f35e  gcc/testsuite/g++.dg/reflect/type4.C
*************** d8a3c8c16d619e634a0ac785558d78a3  gcc/te
*** 37989,37995 ****
  428c7497ade86d1054c19afa40e9b052  gcc/testsuite/g++.dg/reflect/type9.C
  a97f51af196e9b66ef9d840989598a75  gcc/testsuite/g++.dg/reflect/type_of1.C
  2cbbc76b7de463f6b1d9d308ec90a956  gcc/testsuite/g++.dg/reflect/type_of2.C
! 04ceff367fd1cae985265e6d71d444db  gcc/testsuite/g++.dg/reflect/type_of3.C
  923b99a2592b5b36ddaef3f2fa7327dd  gcc/testsuite/g++.dg/reflect/type_rels1.C
  9180e7348d8521febdaba8e0dee848e6  gcc/testsuite/g++.dg/reflect/type_trait1.C
  a66e1dc9964c7702e9ecdb5be8553fb5  gcc/testsuite/g++.dg/reflect/type_trait10.C
--- 38004,38010 ----
  428c7497ade86d1054c19afa40e9b052  gcc/testsuite/g++.dg/reflect/type9.C
  a97f51af196e9b66ef9d840989598a75  gcc/testsuite/g++.dg/reflect/type_of1.C
  2cbbc76b7de463f6b1d9d308ec90a956  gcc/testsuite/g++.dg/reflect/type_of2.C
! 24dc64c48f4e9d3ba07570c5edc8cc47  gcc/testsuite/g++.dg/reflect/type_of3.C
  923b99a2592b5b36ddaef3f2fa7327dd  gcc/testsuite/g++.dg/reflect/type_rels1.C
  9180e7348d8521febdaba8e0dee848e6  gcc/testsuite/g++.dg/reflect/type_trait1.C
  a66e1dc9964c7702e9ecdb5be8553fb5  gcc/testsuite/g++.dg/reflect/type_trait10.C
*************** edcec8a84ae93d9cffb3a7cd96c90b7d  gcc/te
*** 38010,38015 ****
--- 38025,38031 ----
  66e9924618e01c3871c0c6349d9353c8  gcc/testsuite/g++.dg/reflect/underlying_type1.C
  7411de583d43c552e7b071b948639d1b  gcc/testsuite/g++.dg/reflect/using1.C
  3480e0132e11bbdaa8bce4bee580750a  gcc/testsuite/g++.dg/reflect/using2.C
+ 0049ba78e8a027c40b7aa7fac3673d75  gcc/testsuite/g++.dg/reflect/using3.C
  f84807ff51acb72fe4c1370c2591148e  gcc/testsuite/g++.dg/reflect/value_or_object1.C
  b6fc6119f5cfb5fe32a5e8b8cb496342  gcc/testsuite/g++.dg/reflect/variable_of1.C
  698263b907a62caf5450f66f2c18a05f  gcc/testsuite/g++.dg/reflect/variable_of2.C
*************** d41fd1ea09327fdf9b68f657aea5661c  gcc/te
*** 49506,49511 ****
--- 49522,49528 ----
  cb4c82184137c0933c1bae60a7df15bc  gcc/testsuite/gcc.c-torture/execute/pr123864.c
  95b7f2d687a5a5e2df1e09fad845a195  gcc/testsuite/gcc.c-torture/execute/pr123978.c
  256e8d04f36f265861609fbe23468388  gcc/testsuite/gcc.c-torture/execute/pr124358.c
+ 2dbc141227c879172c1b89d0bc7d747a  gcc/testsuite/gcc.c-torture/execute/pr125291.c
  80c02c70a0b6b91b06942e395c34960f  gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
  987c511633ad57d9f08d352eb9512819  gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
  f7f514cfbd791b0c828e0710493b0910  gcc/testsuite/gcc.c-torture/execute/pr15262.c
*************** ab985bcbd18463ddcc0cb59b8a091e7d  gcc/te
*** 65008,65013 ****
--- 65025,65031 ----
  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
+ fff67bd84df25cc9f3265a2fd89436d9  gcc/testsuite/gcc.dg/tree-ssa/pr125259.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*************** c1a42e6abf341c78082c17c60365086c  gcc/te
*** 90368,90373 ****
--- 90386,90393 ----
  b69eb677daef92be04da1f0e0218c44e  gcc/testsuite/gcc.target/i386/pr120840-1b.c
  90c426e3f9f68074b3688e77c0a85c20  gcc/testsuite/gcc.target/i386/pr120840-1c.c
  b157fbe2632de5156079590d5faadfd7  gcc/testsuite/gcc.target/i386/pr120840-1d.c
+ 6979b4f62a85eb25fa82f68592ad363d  gcc/testsuite/gcc.target/i386/pr120870-1.c
+ 2677cc36e093bf45fb4067a0538b07c0  gcc/testsuite/gcc.target/i386/pr120870-2.c
  4b9fcb69739d672e799c27a972aaf97d  gcc/testsuite/gcc.target/i386/pr120881-1a.c
  be5b82c04ee4bc5470f2a54c12758197  gcc/testsuite/gcc.target/i386/pr120881-1b.c
  dc5699b1ed908f2743344eb7eccdf1b4  gcc/testsuite/gcc.target/i386/pr120881-1c.c
*************** fd0c95fcad577a49c3553f21604c3b61  gcc/te
*** 90494,90499 ****
--- 90514,90520 ----
  fbfd31ba28ddc5c31ac2fd9d714443bb  gcc/testsuite/gcc.target/i386/pr124056.c
  d27914ddcfa1d9a135c3e7189bd6af10  gcc/testsuite/gcc.target/i386/pr124098.c
  47cf91db1dea0c9b92db6c1fae08c91e  gcc/testsuite/gcc.target/i386/pr124194.c
+ d9ed650f309dc0e24daeb25d90c34fa0  gcc/testsuite/gcc.target/i386/pr124316.c
  dcd126d8cd1a8a25624089d6f707cc1e  gcc/testsuite/gcc.target/i386/pr124407-1.c
  101572df1dd23dde5382be2d1a1478fe  gcc/testsuite/gcc.target/i386/pr124407-2.c
  20438ee87f52efda141c43d1f08416e1  gcc/testsuite/gcc.target/i386/pr124696.c
*************** f742c249f29b11f89b622821fd3fb16b  gcc/te
*** 90510,90515 ****
--- 90531,90537 ----
  ffc68fd0ff2ba113062cd86cae484d7d  gcc/testsuite/gcc.target/i386/pr124877-2.c
  f06caa7312f1bda837e182ee5d6c518e  gcc/testsuite/gcc.target/i386/pr124877-3.c
  2452d87d24cd7ed49934ad5aecd255e2  gcc/testsuite/gcc.target/i386/pr125180.c
+ 83da3f12f4b2e9f51434bf8ad312884d  gcc/testsuite/gcc.target/i386/pr125308.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
*************** dde2cba27bc4292492e4c0dd492a70e0  gcc/te
*** 93970,93975 ****
--- 93992,93998 ----
  0626ac54385b7d00394be7a0b09850a1  gcc/testsuite/gcc.target/loongarch/pr122695-1.c
  fb640df1e5eb969859e5c360f608dec4  gcc/testsuite/gcc.target/loongarch/pr122695-2.c
  a7b8424d31ff38e61388847501535b2d  gcc/testsuite/gcc.target/loongarch/pr123171.c
+ 8784ee3164375854ef7b1ffc0c536b5e  gcc/testsuite/gcc.target/loongarch/pr125049.c
  d8ba98681e844aa3cab41dadb293ad62  gcc/testsuite/gcc.target/loongarch/pragma-la64V1_1-2.c
  94f43e2ce509bac58eba454a85dd7a33  gcc/testsuite/gcc.target/loongarch/pragma-la64V1_1.c
  596c5238ab0cc321a3b51db7071941d8  gcc/testsuite/gcc.target/loongarch/regname-float-abi.c
*************** c3c402867cc595cbe2e51291eb207948  gcc/te
*** 112868,112873 ****
--- 112891,112897 ----
  8ec271b1c5257492c5bb34f140f1d061  gcc/testsuite/gfortran.dg/bounds_check_26.f90
  df581146a6f103a1d6bc36eb134e10d4  gcc/testsuite/gfortran.dg/bounds_check_27.f90
  d0aa29bccee67fc6ecfd7b9482ffc253  gcc/testsuite/gfortran.dg/bounds_check_28.f90
+ 264d1a6ff9bc60a7384c9acb13ac2ae4  gcc/testsuite/gfortran.dg/bounds_check_29.f90
  1ff91e96da26ef6e7839e53e2b71499d  gcc/testsuite/gfortran.dg/bounds_check_3.f90
  a9119407c225c716d99c309178d77952  gcc/testsuite/gfortran.dg/bounds_check_4.f90
  167a95fa41d2abf20f66591e1389d059  gcc/testsuite/gfortran.dg/bounds_check_5.f90
*************** c9bae3926493665cd6a3a6bca4b52e53  gcc/te
*** 114498,114503 ****
--- 114522,114528 ----
  5f453b52ee72bd864f1fc70730289b71  gcc/testsuite/gfortran.dg/dtio_34.f90
  356cc9632fa969c2cee2d146f484043f  gcc/testsuite/gfortran.dg/dtio_35.f90
  a63c4c25b48888dec1fdd5c3312fe243  gcc/testsuite/gfortran.dg/dtio_36.f90
+ 6d70b4f88d2ebcdd865e42765b1486d8  gcc/testsuite/gfortran.dg/dtio_37.f90
  98feff72bfe6f9469278b8b049519af2  gcc/testsuite/gfortran.dg/dtio_4.f90
  5c6704b3b1b7266ea126e709df28bebe  gcc/testsuite/gfortran.dg/dtio_6.f90
  416c852bc110486241a963ccac6a32e0  gcc/testsuite/gfortran.dg/dtio_7.f90
*************** ab43a12e9d7dd4f0eed4d087fc19a84f  gcc/te
*** 117400,117405 ****
--- 117425,117431 ----
  7841bdfa2894b1c8f28e061e0d78ca99  gcc/testsuite/gfortran.dg/namelist_1.f90
  33eb50db1247aefc95a8f0bcc1c23951  gcc/testsuite/gfortran.dg/namelist_100.f90
  6d976ec444b00238a9bfc57f681c6c05  gcc/testsuite/gfortran.dg/namelist_101.f90
+ eff259516b93a9cda51eb967046a18bb  gcc/testsuite/gfortran.dg/namelist_102.f90
  02a533763d199c5afa28bec631ca6b9e  gcc/testsuite/gfortran.dg/namelist_11.f
  fadabd8643639e650a8499262b9a767e  gcc/testsuite/gfortran.dg/namelist_12.f
  637100e10c22e1d286db1ce10741e289  gcc/testsuite/gfortran.dg/namelist_13.f90
*************** ec7ae5b41af0b730610dc9a22fa581ed  gcc/te
*** 123831,123836 ****
--- 123857,123863 ----
  a4f52bfabfe2bc7e231d6ecd5aeefaf6  gcc/testsuite/gnat.dg/enum3.adb
  79e91643725fd540a4e8915c24d964f5  gcc/testsuite/gnat.dg/enum4.adb
  59ed0090b7193e032aae3fdff3f91c4f  gcc/testsuite/gnat.dg/enum5.adb
+ 2902659a8dc0155ec00ad737afd98480  gcc/testsuite/gnat.dg/enum6.adb
  9ec6e8c939115d52974c52ebef0dfd47  gcc/testsuite/gnat.dg/enum_rep.adb
  70cecb0f3bbaca4e003491cba4e20cbe  gcc/testsuite/gnat.dg/enum_rep.ads
  3c812d9c40899c50bf02d8f0caaf64e8  gcc/testsuite/gnat.dg/enum_rep2.adb
*************** af452bfcd099f7ad757c0709565fb6f2  gcc/te
*** 128086,128092 ****
  c0366f2c31a7d5fba486ea04c6f08b9a  gcc/testsuite/lib/go.exp
  569a9bbf0bbca4b3648f90532f4b4b21  gcc/testsuite/lib/htmltest.py
  c0b7997d28c0e4c1e52d9c22fe7612a7  gcc/testsuite/lib/hwasan-dg.exp
! d1598d17d16fc7cf6093cc0ceb65e958  gcc/testsuite/lib/lto.exp
  8788f5bd86ca545e5cc667a7883372aa  gcc/testsuite/lib/mike-g++.exp
  3252f65e1ec61c730a6ac983f56b3fd7  gcc/testsuite/lib/mike-gcc.exp
  6cae4002752080c9ace9f60df166aefe  gcc/testsuite/lib/modules.exp
--- 128113,128119 ----
  c0366f2c31a7d5fba486ea04c6f08b9a  gcc/testsuite/lib/go.exp
  569a9bbf0bbca4b3648f90532f4b4b21  gcc/testsuite/lib/htmltest.py
  c0b7997d28c0e4c1e52d9c22fe7612a7  gcc/testsuite/lib/hwasan-dg.exp
! ade4aa57d1eb4bbe1978edf05d20a8c6  gcc/testsuite/lib/lto.exp
  8788f5bd86ca545e5cc667a7883372aa  gcc/testsuite/lib/mike-g++.exp
  3252f65e1ec61c730a6ac983f56b3fd7  gcc/testsuite/lib/mike-gcc.exp
  6cae4002752080c9ace9f60df166aefe  gcc/testsuite/lib/modules.exp
*************** a24cff30baef257a999b4fac3ca47d5a  gcc/tr
*** 130952,130958 ****
  45c5e55c37764fad83ea33411f4eb348  gcc/tree-pretty-print.cc
  c021bc7a8aa59f2b8184de8bff6b1d14  gcc/tree-pretty-print.h
  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
--- 130979,130985 ----
  45c5e55c37764fad83ea33411f4eb348  gcc/tree-pretty-print.cc
  c021bc7a8aa59f2b8184de8bff6b1d14  gcc/tree-pretty-print.h
  1ad5e1ab19c4386e24d5679133ee5502  gcc/tree-profile.cc
! f6e775dc713dd010d4533cdab4dc044f  gcc/tree-scalar-evolution.cc
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
  6386c2ac578a3794d245342b702f721e  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
*************** d5f038474fd5faad3f79701cbb81bf30  libgco
*** 133586,133592 ****
  9486776ee88dd841ac94aa73290a74bf  libgcobol/valconv.cc
  3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
  db95b8e503515d7615559adc1be6164a  libgcobol/xmlparse.cc
! a86d79911bc0e7f05213a755ca04e4bf  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
--- 133613,133619 ----
  9486776ee88dd841ac94aa73290a74bf  libgcobol/valconv.cc
  3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
  db95b8e503515d7615559adc1be6164a  libgcobol/xmlparse.cc
! f2660506ef578312455f68e8892332cc  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
*************** f9101923347929f02ecedab542ddf291  libgfo
*** 134528,134534 ****
  3d6bdfad19038c8e5794b4f1d39dc010  libgfortran/io/inquire.c
  86f78d0a8d7fd3418de9e9f9a1cb384f  libgfortran/io/intrinsics.c
  fe24afda0444aab88f5a40caf1738169  libgfortran/io/io.h
! 724724904a02d3a4a9d6f7203b3949ae  libgfortran/io/list_read.c
  908721400434528de210b0cbef37f603  libgfortran/io/lock.c
  a5048d41737161954ead03f98865a018  libgfortran/io/open.c
  15fa25bbc2ea09df80ad7037e0c28b75  libgfortran/io/read.c
--- 134555,134561 ----
  3d6bdfad19038c8e5794b4f1d39dc010  libgfortran/io/inquire.c
  86f78d0a8d7fd3418de9e9f9a1cb384f  libgfortran/io/intrinsics.c
  fe24afda0444aab88f5a40caf1738169  libgfortran/io/io.h
! ea635852033817b89d7cc5fa4cee5183  libgfortran/io/list_read.c
  908721400434528de210b0cbef37f603  libgfortran/io/lock.c
  a5048d41737161954ead03f98865a018  libgfortran/io/open.c
  15fa25bbc2ea09df80ad7037e0c28b75  libgfortran/io/read.c
*************** a94321c8d0dbbc71741ebf0f1cc9828c  libstd
*** 145841,145847 ****
  9161085c79a8bf8d60641b5525f28bd7  libstdc++-v3/Makefile.am
  dbe6646c8cac125dd885d66a4fd4ce40  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! 81d842b8de8e587a7d5fb793e0ee7373  libstdc++-v3/acinclude.m4
  66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
  99a3cff2df96180120774fefa11f050e  libstdc++-v3/config.h.in
  2345fca717fc01f8c1494241d6a88e94  libstdc++-v3/config/abi/compatibility.h
--- 145868,145874 ----
  9161085c79a8bf8d60641b5525f28bd7  libstdc++-v3/Makefile.am
  dbe6646c8cac125dd885d66a4fd4ce40  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! d918ee088d625702e407f402eaf8cdf2  libstdc++-v3/acinclude.m4
  66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
  99a3cff2df96180120774fefa11f050e  libstdc++-v3/config.h.in
  2345fca717fc01f8c1494241d6a88e94  libstdc++-v3/config/abi/compatibility.h
*************** a144795bdde388f89eb6222f0c2e4932  libstd
*** 146037,146043 ****
  53df82982400fd3d426f3fd0e0c37b54  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  a3f907fa7f71dc9eb08755c9c438accc  libstdc++-v3/config/os/vxworks/ctype_inline.h
  309bdcfd61ec9ca44671057524c081f1  libstdc++-v3/config/os/vxworks/os_defines.h
! c51771137f2cb160f9c70d9e9da2905d  libstdc++-v3/configure
  ef7d4ee8dfc656b2511fdab05020e10d  libstdc++-v3/configure.ac
  bfcbc1fdbf99aa57e07470ca81fd7627  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
--- 146064,146070 ----
  53df82982400fd3d426f3fd0e0c37b54  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  a3f907fa7f71dc9eb08755c9c438accc  libstdc++-v3/config/os/vxworks/ctype_inline.h
  309bdcfd61ec9ca44671057524c081f1  libstdc++-v3/config/os/vxworks/os_defines.h
! 08319515e5cd6c5ce094fc00f6d906d1  libstdc++-v3/configure
  ef7d4ee8dfc656b2511fdab05020e10d  libstdc++-v3/configure.ac
  bfcbc1fdbf99aa57e07470ca81fd7627  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
*************** cbd44f9447b308b0901004443db53e93  libstd
*** 146593,146599 ****
  0a8f60f26dfea4bfea0ec71fe4a45ee8  libstdc++-v3/include/bits/sat_arith.h
  39e2988a6581d891172e27c28e87c62f  libstdc++-v3/include/bits/semaphore_base.h
  a5e720346d3b4c60bfbcb9cf9a79f417  libstdc++-v3/include/bits/shared_ptr.h
! 06d870671ae35152d9e8442900c80215  libstdc++-v3/include/bits/shared_ptr_atomic.h
  702f905b7fc00c89ecacee8e82ba19d9  libstdc++-v3/include/bits/shared_ptr_base.h
  a3287036233bd3e6387160d82f75e7dd  libstdc++-v3/include/bits/simd_alg.h
  8799fba3d1a57dd5590cd74b04d27d71  libstdc++-v3/include/bits/simd_details.h
--- 146620,146626 ----
  0a8f60f26dfea4bfea0ec71fe4a45ee8  libstdc++-v3/include/bits/sat_arith.h
  39e2988a6581d891172e27c28e87c62f  libstdc++-v3/include/bits/semaphore_base.h
  a5e720346d3b4c60bfbcb9cf9a79f417  libstdc++-v3/include/bits/shared_ptr.h
! 3464ab6bcb3ccff1cae5bcff7a6eb9ca  libstdc++-v3/include/bits/shared_ptr_atomic.h
  702f905b7fc00c89ecacee8e82ba19d9  libstdc++-v3/include/bits/shared_ptr_base.h
  a3287036233bd3e6387160d82f75e7dd  libstdc++-v3/include/bits/simd_alg.h
  8799fba3d1a57dd5590cd74b04d27d71  libstdc++-v3/include/bits/simd_details.h
*************** beadb627afafbd9d018802046c0b4403  libstd
*** 147595,147601 ****
  c2bd27af25e57adce5807e0f01a2d0dc  libstdc++-v3/src/c++20/sstream-inst.cc
  23187a5ee053acd65f32c0dc2ac4bdf7  libstdc++-v3/src/c++20/string-inst.cc
  50ac2e00d5794df965e47509f3c16cb5  libstdc++-v3/src/c++20/syncbuf.cc
! 5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
  d73167acef44648f9b3bbfe18e4d1b8b  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
--- 147622,147628 ----
  c2bd27af25e57adce5807e0f01a2d0dc  libstdc++-v3/src/c++20/sstream-inst.cc
  23187a5ee053acd65f32c0dc2ac4bdf7  libstdc++-v3/src/c++20/string-inst.cc
  50ac2e00d5794df965e47509f3c16cb5  libstdc++-v3/src/c++20/syncbuf.cc
! e868493d039d86bca105c23a24b87383  libstdc++-v3/src/c++20/tzdata.zi
  d73167acef44648f9b3bbfe18e4d1b8b  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
diff -Nrcpad gcc-16-20260509/gcc/ChangeLog gcc-16-20260516/gcc/ChangeLog
*** gcc-16-20260509/gcc/ChangeLog	Sat May  9 22:32:04 2026
--- gcc-16-20260516/gcc/ChangeLog	Sat May 16 22:32:04 2026
***************
*** 1,3 ****
--- 1,112 ----
+ 2026-05-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-05-13  H.J. Lu  <hjl.tools@gmail.com>
+ 		    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120870
+ 	* config/i386/i386.cc (ix86_save_reg): Return true for DRAP
+ 	register early at entry.
+ 	(find_drap_reg): Use R11_REG in preserve_none functions in
+ 	64-bit mode.
+ 
+ 2026-05-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-05-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR tree-optimization/125291
+ 	* tree-scalar-evolution.cc (simplify_peeled_chrec): Sign-extend
+ 	the step for peeled converted IV.
+ 
+ 2026-05-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/125308
+ 	* config/i386/sse.md (*minmax<mode>3_4): Force also
+ 	operands[2] into a REG.
+ 
+ 2026-05-14  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR target/124316
+ 	* config/i386/i386.md (ptwrite): Add explicit mode to
+ 	instruction.
+ 
+ 2026-05-14  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2026-05-14  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/125194
+ 	* config/avr/avr.cc (avr_no_call_main_p): Remove variable...
+ 	(avr_file_end): ...and code that uses it.
+ 	(avr_insert_attributes): Same.  Add "used" to main attributes
+ 	when -mno-call-main.
+ 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu): Emit code
+ 	for link_no_call_main specs.
+ 	* config/avr/specs.h (LINK_SPEC): Add %(link_no_call_main).
+ 
+ 2026-05-13  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-05-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/125049
+ 	* config/loongarch/predicates.md (ssp_operand): New
+ 	define_predicate.
+ 	(ssp_normal_operand): New define_predicate.
+ 	* config/loongarch/constraints.md (ZE): New define_constraint.
+ 	(ZF): New define_constraint.
+ 	* config/loongarch/loongarch.md (UNSPEC_SSP): New unspec.
+ 	(cbranch4): Add "@" to create gen_cbranch4(machine_mode, ...).
+ 	(@stack_protect_combined_set_normal_<mode>): New define_insn.
+ 	(@stack_protect_combined_set_extreme_<mode>): New define_insn.
+ 	(@stack_protect_combined_test_internal_<mode>): New define_insn.
+ 	(stack_protect_combined_set): New define_expand.
+ 	(stack_protect_combined_test): New define_expand.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_output_asm_load_canary): Declare.
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand): Allow
+ 	'v' to print d/w for DImode/SImode.
+ 	(loongarch_output_asm_load_canary): Implement.
+ 
+ 2026-05-13  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-05-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand): Print
+ 	the symbol name for SYMBOL_REF with %c.
+ 
+ 2026-05-12  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	Backported from master:
+ 	2026-05-12  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	PR middle-end/125259
+ 	* match.pd: Fix the view_convert (BIT_FIELD_REF) pattern.
+ 
+ 2026-05-11  LIU Hao  <lh_mouse@126.com>
+ 
+ 	Backported from master:
+ 	2026-05-11  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR target/53929
+ 	* config/mingw/winnt.cc (mingw_pe_file_end): Use `ASM_OUTPUT_LABELREF`
+ 	to emit `name`.
+ 
+ 2026-05-11  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-01  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.cc (s390_secondary_reload): Add cases for HF
+ 	vector modes.
+ 	* config/s390/s390.md: Add modes V{1,2,4,8}HF to mode iterator
+ 	ALL.
+ 
  2026-05-08  Richard Biener  <rguenther@suse.de>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260509/gcc/DATESTAMP gcc-16-20260516/gcc/DATESTAMP
*** gcc-16-20260509/gcc/DATESTAMP	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/DATESTAMP	Sat May 16 22:32:04 2026
***************
*** 1 ****
! 20260509
--- 1 ----
! 20260516
diff -Nrcpad gcc-16-20260509/gcc/ada/ChangeLog gcc-16-20260516/gcc/ada/ChangeLog
*** gcc-16-20260509/gcc/ada/ChangeLog	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/ada/ChangeLog	Sat May 16 22:32:04 2026
***************
*** 1,3 ****
--- 1,15 ----
+ 2026-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/125240
+ 	* gen_il-gen-gen_entities.adb (Enumeration_Kind): Make
+ 	Lit_Indexes and Lit_Strings be defined for root types only.
+ 	* einfo.ads (Lit_Hash): Adjust description.
+ 	(Lit_Indexes): Likewise.
+ 	(Lit_Strings): Likewise.
+ 	(E_Enumeration_Type): Likewise.
+ 	* exp_imgv.adb (Expand_Image_Attribute): Do not fetch the root type
+ 	for enumeration types, except for character types, and adjust.
+ 
  2026-05-03  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/125168
diff -Nrcpad gcc-16-20260509/gcc/ada/einfo.ads gcc-16-20260516/gcc/ada/einfo.ads
*** gcc-16-20260509/gcc/ada/einfo.ads	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/ada/einfo.ads	Sat May 16 22:32:04 2026
*************** package Einfo is
*** 3647,3668 ****
  --       type of the object.
  
  --    Lit_Hash [root type only]
! --       Defined in enumeration types and subtypes. Non-empty only for the
! --       case of an enumeration root type, where it contains the entity for
  --       the generated hash function. See unit Exp_Imgv for full details of
  --       the nature and use of this entity for implementing the Value
  --       attribute for the enumeration type in question.
  
! --    Lit_Indexes
! --       Defined in enumeration types and subtypes. Non-empty only for the
! --       case of an enumeration root type, where it contains the entity for
  --       the generated indexes entity. See unit Exp_Imgv for full details of
  --       the nature and use of this entity for implementing the Image and
  --       Value attributes for the enumeration type in question.
  
! --    Lit_Strings
! --       Defined in enumeration types and subtypes. Non-empty only for the
! --       case of an enumeration root type, where it contains the entity for
  --       the literals string entity. See unit Exp_Imgv for full details of
  --       the nature and use of this entity for implementing the Image and
  --       Value attributes for the enumeration type in question.
--- 3647,3665 ----
  --       type of the object.
  
  --    Lit_Hash [root type only]
! --       Defined in enumeration types and subtypes. Contains the entity for
  --       the generated hash function. See unit Exp_Imgv for full details of
  --       the nature and use of this entity for implementing the Value
  --       attribute for the enumeration type in question.
  
! --    Lit_Indexes [root type only]
! --       Defined in enumeration types and subtypes. Contains the entity for
  --       the generated indexes entity. See unit Exp_Imgv for full details of
  --       the nature and use of this entity for implementing the Image and
  --       Value attributes for the enumeration type in question.
  
! --    Lit_Strings [root type only]
! --       Defined in enumeration types and subtypes. Contains the entity for
  --       the literals string entity. See unit Exp_Imgv for full details of
  --       the nature and use of this entity for implementing the Image and
  --       Value attributes for the enumeration type in question.
*************** package Einfo is
*** 5530,5541 ****
     --  E_Enumeration_Subtype
     --    First_Entity $$$ type
     --    Renamed_Object $$$
-    --    Lit_Strings                          (root type only)
     --    First_Literal
     --    Lit_Indexes                          (root type only)
     --    Default_Aspect_Value                 (base type only)
     --    Scalar_Range
-    --    Lit_Hash                             (root type only)
     --    Enum_Pos_To_Rep                      (type only)
     --    Static_Discrete_Predicate
     --    Has_Biased_Representation
--- 5527,5538 ----
     --  E_Enumeration_Subtype
     --    First_Entity $$$ type
     --    Renamed_Object $$$
     --    First_Literal
+    --    Lit_Hash                             (root type only)
     --    Lit_Indexes                          (root type only)
+    --    Lit_Strings                          (root type only)
     --    Default_Aspect_Value                 (base type only)
     --    Scalar_Range
     --    Enum_Pos_To_Rep                      (type only)
     --    Static_Discrete_Predicate
     --    Has_Biased_Representation
diff -Nrcpad gcc-16-20260509/gcc/ada/exp_imgv.adb gcc-16-20260516/gcc/ada/exp_imgv.adb
*** gcc-16-20260509/gcc/ada/exp_imgv.adb	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/ada/exp_imgv.adb	Sat May 16 22:32:04 2026
*************** package body Exp_Imgv is
*** 1061,1071 ****
  
        --  Ada 2022 allows 'Image on private types, so fetch the underlying
        --  type to obtain the structure of the type. We use the base type,
!       --  not the root type for discrete types, to handle properly derived
!       --  types, but we use the root type for enumeration types, because the
!       --  literal map is attached to the root. Should be inherited ???
  
!       if Is_Real_Type (Ptyp) or else Is_Enumeration_Type (Ptyp) then
           Rtyp := Underlying_Type (Root_Type (Ptyp));
        else
           Rtyp := Underlying_Type (Base_Type (Ptyp));
--- 1061,1070 ----
  
        --  Ada 2022 allows 'Image on private types, so fetch the underlying
        --  type to obtain the structure of the type. We use the base type,
!       --  not the root type, for discrete types in order to handle derived
!       --  types, except for character types for which this is not needed.
  
!       if Is_Real_Type (Ptyp) or else Is_Character_Type (Ptyp) then
           Rtyp := Underlying_Type (Root_Type (Ptyp));
        else
           Rtyp := Underlying_Type (Base_Type (Ptyp));
*************** package body Exp_Imgv is
*** 1076,1082 ****
  
        Enum_Case := False;
  
!       if Rtyp = Standard_Boolean then
           --  Use inline expansion if the -gnatd_x switch is not passed to the
           --  compiler. Otherwise expand into a call to the runtime.
  
--- 1075,1081 ----
  
        Enum_Case := False;
  
!       if Is_Boolean_Type (Rtyp) then
           --  Use inline expansion if the -gnatd_x switch is not passed to the
           --  compiler. Otherwise expand into a call to the runtime.
  
diff -Nrcpad gcc-16-20260509/gcc/ada/gen_il-gen-gen_entities.adb gcc-16-20260516/gcc/ada/gen_il-gen-gen_entities.adb
*** gcc-16-20260509/gcc/ada/gen_il-gen-gen_entities.adb	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/ada/gen_il-gen-gen_entities.adb	Sat May 16 22:32:04 2026
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 551,561 ****
         (Sm (First_Literal, Node_Id),
          Sm (Has_Enumeration_Rep_Clause, Flag),
          Sm (Has_Pragma_Ordered, Flag, Impl_Base_Type_Only),
!         Sm (Lit_Indexes, Node_Id),
!         Sm (Lit_Strings, Node_Id),
          Sm (Nonzero_Is_True, Flag, Base_Type_Only,
!             Pre => "Root_Type (N) = Standard_Boolean"),
!         Sm (Lit_Hash, Node_Id, Root_Type_Only)));
  
     Cc (E_Enumeration_Type, Enumeration_Kind,
         --  Enumeration types, created by an enumeration type declaration
--- 551,561 ----
         (Sm (First_Literal, Node_Id),
          Sm (Has_Enumeration_Rep_Clause, Flag),
          Sm (Has_Pragma_Ordered, Flag, Impl_Base_Type_Only),
!         Sm (Lit_Hash, Node_Id, Root_Type_Only),
!         Sm (Lit_Indexes, Node_Id, Root_Type_Only),
!         Sm (Lit_Strings, Node_Id, Root_Type_Only),
          Sm (Nonzero_Is_True, Flag, Base_Type_Only,
!             Pre => "Root_Type (N) = Standard_Boolean")));
  
     Cc (E_Enumeration_Type, Enumeration_Kind,
         --  Enumeration types, created by an enumeration type declaration
diff -Nrcpad gcc-16-20260509/gcc/c/ChangeLog gcc-16-20260516/gcc/c/ChangeLog
*** gcc-16-20260509/gcc/c/ChangeLog	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/c/ChangeLog	Sat May 16 22:32:04 2026
***************
*** 1,3 ****
--- 1,10 ----
+ 2026-05-15  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR c/124532
+ 	* c-parser.cc (struct attr_state): Add reset method.
+ 	(c_parser_compound_statement_nostart): Rename a to astate.
+ 	Reset state before iterating statements.
+ 
  2026-04-30  Release Manager
  
  	* GCC 16.1.0 released.
diff -Nrcpad gcc-16-20260509/gcc/c/c-parser.cc gcc-16-20260516/gcc/c/c-parser.cc
*** gcc-16-20260509/gcc/c/c-parser.cc	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/c/c-parser.cc	Sat May 16 22:32:05 2026
*************** struct attr_state
*** 1795,1800 ****
--- 1795,1802 ----
  {
    /* True if we parsed a musttail attribute for return.  */
    bool musttail_p;
+ 
+   void reset () { musttail_p = false; }
  };
  
  static bool c_parser_nth_token_starts_std_attributes (c_parser *,
*************** c_parser_compound_statement_nostart (c_p
*** 7648,7654 ****
    bool in_omp_loop_block
      = omp_for_parse_state ? omp_for_parse_state->want_nested_loop : false;
    tree sl = NULL_TREE;
!   attr_state a = {};
  
    if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
      {
--- 7650,7656 ----
    bool in_omp_loop_block
      = omp_for_parse_state ? omp_for_parse_state->want_nested_loop : false;
    tree sl = NULL_TREE;
!   attr_state astate = {};
  
    if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
      {
*************** c_parser_compound_statement_nostart (c_p
*** 7740,7745 ****
--- 7742,7748 ----
  	      sl = push_stmt_list ();
  	      parser->error = false;
  	      before_labels = get_before_labels ();
+ 	      astate.reset ();
  	      continue;
  	    }
  	  else if (want_nested_loop
*************** c_parser_compound_statement_nostart (c_p
*** 7773,7778 ****
--- 7776,7782 ----
  		}
  	      parser->error = false;
  	      before_labels = get_before_labels ();
+ 	      astate.reset ();
  	      continue;
  	    }
  	  else if (c_parser_next_token_is (parser, CPP_SEMICOLON))
*************** c_parser_compound_statement_nostart (c_p
*** 7784,7789 ****
--- 7788,7794 ----
  	      /* FIXME:  Maybe issue a warning or something here?  */
  	      c_parser_consume_token (parser);
  	      before_labels = get_before_labels ();
+ 	      astate.reset ();
  	      continue;
  	    }
  	}
*************** c_parser_compound_statement_nostart (c_p
*** 7795,7801 ****
        if (have_std_attrs)
  	{
  	  std_attrs = c_parser_std_attribute_specifier_sequence (parser);
! 	  std_attrs = c_parser_handle_musttail (parser, std_attrs, a);
  	}
        if (c_parser_next_token_is_keyword (parser, RID_CASE)
  	  || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
--- 7800,7806 ----
        if (have_std_attrs)
  	{
  	  std_attrs = c_parser_std_attribute_specifier_sequence (parser);
! 	  std_attrs = c_parser_handle_musttail (parser, std_attrs, astate);
  	}
        if (c_parser_next_token_is_keyword (parser, RID_CASE)
  	  || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
*************** c_parser_compound_statement_nostart (c_p
*** 7937,7942 ****
--- 7942,7948 ----
                error_at (loc, "%<else%> without a previous %<if%>");
                c_parser_consume_token (parser);
  	      before_labels = get_before_labels ();
+ 	      astate.reset ();
                continue;
              }
          }
*************** c_parser_compound_statement_nostart (c_p
*** 7949,7955 ****
  	  mark_valid_location_for_stdc_pragma (false);
  	  if (!omp_for_parse_state)
  	    c_parser_statement_after_labels (parser, NULL, before_labels,
! 					     NULL, a);
  	  else
  	    {
  	      /* In canonical loop nest form, nested loops can only appear
--- 7955,7961 ----
  	  mark_valid_location_for_stdc_pragma (false);
  	  if (!omp_for_parse_state)
  	    c_parser_statement_after_labels (parser, NULL, before_labels,
! 					     NULL, astate);
  	  else
  	    {
  	      /* In canonical loop nest form, nested loops can only appear
*************** c_parser_compound_statement_nostart (c_p
*** 7966,7971 ****
--- 7972,7978 ----
  	}
  
        parser->error = false;
+       astate.reset ();
      }
    if (last_label)
      pedwarn_c11 (label_loc, OPT_Wfree_labels,
diff -Nrcpad gcc-16-20260509/gcc/config/avr/avr.cc gcc-16-20260516/gcc/config/avr/avr.cc
*** gcc-16-20260509/gcc/config/avr/avr.cc	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/avr/avr.cc	Sat May 16 22:32:05 2026
*************** bool avr_need_clear_bss_p = false;
*** 249,257 ****
  bool avr_need_copy_data_p = false;
  bool avr_has_rodata_p = false;
  
- /* To track if we satisfy __call_main from AVR-LibC.  */
- bool avr_no_call_main_p = false;
- 
  /* Counts how often pass avr-fuse-add has been executed.  Is is kept in
     sync with cfun->machine->n_avr_fuse_add_executed and serves as an
     insn condition for shift insn splitters.  */
--- 249,254 ----
*************** avr_insert_attributes (tree node, tree *
*** 11906,11912 ****
  	      *attributes = tree_cons (get_identifier ("section"),
  				       arg, *attributes);
  	    }
! 	  avr_no_call_main_p = true;
  	}
      } // -mno-call-main
  #endif // AVR-LibC
--- 11903,11911 ----
  	      *attributes = tree_cons (get_identifier ("section"),
  				       arg, *attributes);
  	    }
! 	  if (!lookup_attribute ("used", *attributes))
! 	    *attributes = tree_cons (get_identifier ("used"),
! 				     NULL_TREE, *attributes);
  	}
      } // -mno-call-main
  #endif // AVR-LibC
*************** avr_file_end (void)
*** 12467,12481 ****
  
    if (avr_need_clear_bss_p)
      fputs (".global __do_clear_bss\n", asm_out_file);
- 
-   /* Don't let __call_main call main() and exit().
-      Defining this symbol will keep the code from being pulled
-      in from lib<mcu>.a as requested by AVR-LibC's gcrt1.S.
-      We invoke main() by other means: putting it in .init9.  */
- 
-   if (avr_no_call_main_p)
-     fputs (".global __call_main\n"
- 	   "__call_main = 0\n", asm_out_file);
  }
  
  
--- 12466,12471 ----
diff -Nrcpad gcc-16-20260509/gcc/config/avr/gen-avr-mmcu-specs.cc gcc-16-20260516/gcc/config/avr/gen-avr-mmcu-specs.cc
*** gcc-16-20260509/gcc/config/avr/gen-avr-mmcu-specs.cc	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/avr/gen-avr-mmcu-specs.cc	Sat May 16 22:32:05 2026
*************** print_mcu (const avr_mcu_t *mcu, const M
*** 355,360 ****
--- 355,362 ----
  
    fprintf (f, "*link_relax:\n\t%s\n\n", LINK_RELAX_SPEC);
  
+   fprintf (f, "*link_no_call_main:\n\t%s\n\n", "%{mno-call-main: --defsym __call_main=0}");
+ 
    fprintf (f, "*link_arch:\n\t%s", link_arch_spec);
    if (mi.is_device
        && rodata_pm_offset)
diff -Nrcpad gcc-16-20260509/gcc/config/avr/specs.h gcc-16-20260516/gcc/config/avr/specs.h
*** gcc-16-20260509/gcc/config/avr/specs.h	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/avr/specs.h	Sat May 16 22:32:05 2026
*************** along with GCC; see the file COPYING3.
*** 67,72 ****
--- 67,73 ----
    "%(link_relax) "                              \
    "%(link_pmem_wrap) "                          \
    "%(link_rodata_in_ram) "                      \
+   "%(link_no_call_main) "                       \
    "%{shared:%eshared is not supported} "
  
  #undef  LIB_SPEC
diff -Nrcpad gcc-16-20260509/gcc/config/i386/i386.cc gcc-16-20260516/gcc/config/i386/i386.cc
*** gcc-16-20260509/gcc/config/i386/i386.cc	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/i386/i386.cc	Sat May 16 22:32:05 2026
*************** ix86_save_reg (unsigned int regno, bool
*** 6777,6782 ****
--- 6777,6789 ----
  {
    rtx reg;
  
+   /* Save and restore DRAP register between prologue and epilogue so
+      that stack pointer can be restored.  */
+   if (crtl->drap_reg
+       && regno == REGNO (crtl->drap_reg)
+       && !cfun->machine->no_drap_save_restore)
+     return true;
+ 
    switch (cfun->machine->call_saved_registers)
      {
      case TYPE_DEFAULT_CALL_SAVED_REGISTERS:
*************** ix86_save_reg (unsigned int regno, bool
*** 6852,6862 ****
  	return false;
      }
  
-   if (crtl->drap_reg
-       && regno == REGNO (crtl->drap_reg)
-       && !cfun->machine->no_drap_save_restore)
-     return true;
- 
    return (df_regs_ever_live_p (regno)
  	  && !call_used_or_fixed_reg_p (regno)
  	  && (regno != HARD_FRAME_POINTER_REGNUM || !frame_pointer_needed));
--- 6859,6864 ----
*************** find_drap_reg (void)
*** 7947,7952 ****
--- 7949,7959 ----
       registers.  */
    if (TARGET_64BIT)
      {
+       /* In preserve_none functions, any register can be used for DRAP,
+ 	 except AX, R12–R15, DI, SI (argument registers), SP, and BP.  */
+       if (cfun->machine->call_saved_registers == TYPE_PRESERVE_NONE)
+ 	return R11_REG;
+ 
        /* Use R13 for nested function or function need static chain.
  	 Since function with tail call may use any caller-saved
  	 registers in epilogue, DRAP must not use caller-saved
diff -Nrcpad gcc-16-20260509/gcc/config/i386/i386.md gcc-16-20260516/gcc/config/i386/i386.md
*** gcc-16-20260509/gcc/config/i386/i386.md	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/i386/i386.md	Sat May 16 22:32:05 2026
***************
*** 30189,30195 ****
    [(unspec_volatile [(match_operand:SWI48 0 "nonimmediate_operand" "rm")]
  		    UNSPECV_PTWRITE)]
    "TARGET_PTWRITE"
!   "ptwrite\t%0"
    [(set_attr "type" "other")
     (set_attr "prefix_0f" "1")
     (set_attr "prefix_rep" "1")])
--- 30189,30195 ----
    [(unspec_volatile [(match_operand:SWI48 0 "nonimmediate_operand" "rm")]
  		    UNSPECV_PTWRITE)]
    "TARGET_PTWRITE"
!   "ptwrite<imodesuffix>\t%0"
    [(set_attr "type" "other")
     (set_attr "prefix_0f" "1")
     (set_attr "prefix_rep" "1")])
diff -Nrcpad gcc-16-20260509/gcc/config/i386/sse.md gcc-16-20260516/gcc/config/i386/sse.md
*** gcc-16-20260509/gcc/config/i386/sse.md	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/i386/sse.md	Sat May 16 22:32:05 2026
***************
*** 3444,3450 ****
       u = UNSPEC_IEEE_MAX;
  
     rtx tmp = force_reg (<MODE>mode, operands[3]);
!    rtvec v = gen_rtvec (2, operands[2], tmp);
     operands[5] = gen_rtx_UNSPEC (<MODE>mode, v, u);
   })
  
--- 3444,3450 ----
       u = UNSPEC_IEEE_MAX;
  
     rtx tmp = force_reg (<MODE>mode, operands[3]);
!    rtvec v = gen_rtvec (2, force_reg (<MODE>mode, operands[2]), tmp);
     operands[5] = gen_rtx_UNSPEC (<MODE>mode, v, u);
   })
  
diff -Nrcpad gcc-16-20260509/gcc/config/loongarch/constraints.md gcc-16-20260516/gcc/config/loongarch/constraints.md
*** gcc-16-20260509/gcc/config/loongarch/constraints.md	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/loongarch/constraints.md	Sat May 16 22:32:05 2026
***************
*** 370,372 ****
--- 370,381 ----
     and offset that is suitable for use in instructions with the same
     addressing mode as @code{preld}."
     (match_test "loongarch_12bit_offset_address_p (op, mode)"))
+ 
+ (define_constraint "ZE"
+   "A symbolic suitable as stack canary in the normal/medium code model."
+   (match_operand 0 "ssp_normal_operand"))
+ 
+ (define_constraint "ZF"
+   "A symbolic suitable as stack canary, but in the extreme code model."
+   (and (match_operand 0 "ssp_operand")
+        (not (match_operand 0 "ssp_normal_operand"))))
diff -Nrcpad gcc-16-20260509/gcc/config/loongarch/loongarch-protos.h gcc-16-20260516/gcc/config/loongarch/loongarch-protos.h
*** gcc-16-20260509/gcc/config/loongarch/loongarch-protos.h	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/loongarch/loongarch-protos.h	Sat May 16 22:32:05 2026
*************** extern bool loongarch_parse_fmv_features
*** 235,238 ****
--- 235,239 ----
  extern void get_feature_mask_for_version (tree, loongarch_fmv_feature_mask *,
  					  auto_vec<unsigned int> *);
  extern int loongarch_compare_version_priority (tree, tree);
+ extern void loongarch_output_asm_load_canary (rtx reg, rtx canary, rtx tmp);
  #endif /* ! GCC_LOONGARCH_PROTOS_H */
diff -Nrcpad gcc-16-20260509/gcc/config/loongarch/loongarch.cc gcc-16-20260516/gcc/config/loongarch/loongarch.cc
*** gcc-16-20260509/gcc/config/loongarch/loongarch.cc	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/loongarch/loongarch.cc	Sat May 16 22:32:05 2026
*************** loongarch_print_operand (FILE *file, rtx
*** 6755,6761 ****
  
  
      case 'c':
!       if (CONST_INT_P (op))
  	fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (op));
        else
  	output_operand_lossage ("unsupported operand for code '%c'", letter);
--- 6755,6763 ----
  
  
      case 'c':
!       if (SYMBOL_REF_P (op))
! 	output_addr_const (asm_out_file, op);
!       else if (CONST_INT_P (op))
  	fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (op));
        else
  	output_operand_lossage ("unsupported operand for code '%c'", letter);
*************** loongarch_print_operand (FILE *file, rtx
*** 6968,6979 ****
--- 6970,6983 ----
  	case E_V4SFmode:
  	case E_V8SImode:
  	case E_V8SFmode:
+ 	case E_SImode:
  	  fprintf (file, "w");
  	  break;
  	case E_V2DImode:
  	case E_V2DFmode:
  	case E_V4DImode:
  	case E_V4DFmode:
+ 	case E_DImode:
  	  fprintf (file, "d");
  	  break;
  	default:
*************** loongarch_option_same_function_versions
*** 12143,12148 ****
--- 12147,12201 ----
    return feature_mask1 == feature_mask2;
  }
  
+ /* Output assembly to materialize the address of the stack canary value
+    into reg.  The third argument, tmp, should be and should only be
+    non-NULL if the extreme code model is effective for the canary.  If
+    the fourth arugment, load, is true, the canary value is loaded into
+    the register.
+ 
+    The assembly cannot be splitted due to security reason.  */
+ void
+ loongarch_output_asm_load_canary (rtx reg, rtx canary, rtx tmp)
+ {
+   gcc_checking_assert (ssp_operand (canary, VOIDmode));
+   gcc_checking_assert ((!tmp) == ssp_normal_operand (canary, VOIDmode));
+   gcc_checking_assert (register_operand (reg, Pmode));
+ 
+   rtx op[] = {reg, canary, tmp};
+   bool got = (loongarch_classify_symbol (canary) == SYMBOL_GOT_DISP);
+   bool need_ld = false;
+ 
+   if (la_opt_explicit_relocs != EXPLICIT_RELOCS_ALWAYS)
+     {
+       if (got)
+ 	output_asm_insn (tmp ? "la.global\t%0,%2,%1" : "la.global\t%0,%1",
+ 			 op);
+       else
+ 	output_asm_insn (tmp ? "la.local\t%0,%2,%1" : "la.local\t%0,%1",
+ 			 op);
+ 
+       need_ld = true;
+     }
+   else
+     {
+       output_asm_insn ("pcalau12i\t%0,%r1", op);
+       if (!tmp)
+ 	output_asm_insn ("ld.%v0\t%0,%0,%L1", op);
+       else
+ 	{
+ 	  output_asm_insn ("addi.d\t%2,$r0,%L1", op);
+ 	  output_asm_insn ("lu32i.d\t%2,%R1", op);
+ 	  output_asm_insn ("lu52i.d\t%2,%2,%H1", op);
+ 	  output_asm_insn ("ldx.d\t%0,%0,%2", op);
+ 	}
+ 
+       need_ld = got;
+     }
+ 
+   if (need_ld)
+     output_asm_insn ("ld.%v0\t%0,%0,0", op);
+ }
+ 
  /* Initialize the GCC target structure.  */
  #undef TARGET_ASM_ALIGNED_HI_OP
  #define TARGET_ASM_ALIGNED_HI_OP "\t.half\t"
diff -Nrcpad gcc-16-20260509/gcc/config/loongarch/loongarch.md gcc-16-20260516/gcc/config/loongarch/loongarch.md
*** gcc-16-20260509/gcc/config/loongarch/loongarch.md	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/loongarch/loongarch.md	Sat May 16 22:32:05 2026
***************
*** 83,88 ****
--- 83,90 ----
    UNSPEC_LOAD_SYMBOL_OFFSET64
    UNSPEC_LA_PCREL_64_PART1
    UNSPEC_LA_PCREL_64_PART2
+ 
+   UNSPEC_SSP
  ])
  
  (define_c_enum "unspecv" [
***************
*** 3677,3683 ****
  ;; QImode values so we can force zero-extension.
  (define_mode_iterator BR [(QI "TARGET_64BIT") SI (DI "TARGET_64BIT")])
  
! (define_expand "cbranch<mode>4"
    [(set (pc)
  	(if_then_else (match_operator 0 "comparison_operator"
  			[(match_operand:BR 1 "register_operand")
--- 3679,3685 ----
  ;; QImode values so we can force zero-extension.
  (define_mode_iterator BR [(QI "TARGET_64BIT") SI (DI "TARGET_64BIT")])
  
! (define_expand "@cbranch<mode>4"
    [(set (pc)
  	(if_then_else (match_operator 0 "comparison_operator"
  			[(match_operand:BR 1 "register_operand")
***************
*** 4986,4991 ****
--- 4988,5077 ----
      operands[0] = loongarch_rewrite_mem_for_simple_ldst (operands[0]);
    })
  
+ ;; Set and check against stack canary without leaving it in a register.
+ ;; DO NOT ATTEMPT TO SPLIT THESE INSNS!  It's important for security reason
+ ;; that the canary value does not live beyond the life of this sequence.
+ 
+ (define_insn "@stack_protect_combined_set_normal_<mode>"
+   [(set (match_operand:P 0 "memory_operand" "=m,ZC")
+         (unspec:P [(mem:P (match_operand:P 1 "ssp_normal_operand"))]
+ 		  UNSPEC_SSP))
+    (set (match_scratch:P 2 "=&r,&r") (const_int 0))]
+   ""
+ {
+   loongarch_output_asm_load_canary (operands[2], operands[1], NULL_RTX);
+   output_asm_insn (which_alternative ? "stptr.d\t%2,%0" : "st.d\t%2,%0",
+ 		   operands);
+   return "ori\t%2,$r0,0";
+ }
+   [(set_attr "type" "store")
+    (set_attr "length" "20")])
+ 
+ (define_insn "@stack_protect_combined_set_extreme_<mode>"
+   [(set (match_operand:P 0 "memory_operand" "=m,ZC")
+         (unspec:P [(mem:P (match_operand:P 1 "ssp_operand"))] UNSPEC_SSP))
+    (set (match_scratch:P 2 "=&r,&r") (const_int 0))
+    (set (match_scratch:P 3 "=&r,&r") (const_int 0))]
+   ""
+ {
+   loongarch_output_asm_load_canary (operands[2], operands[1], operands[3]);
+   output_asm_insn (which_alternative ? "stptr.d\t%2,%0" : "st.d\t%2,%0",
+ 		   operands);
+   return "ori\t%2,$r0,0\n\tori\t%3,$r0,0";
+ }
+   [(set_attr "type" "store")
+    (set_attr "length" "36")])
+ 
+ (define_insn "@stack_protect_combined_test_internal_<mode>"
+   [(set (match_operand:P 0 "register_operand" "=r,r,&r,&r")
+ 	(xor:P
+ 	  (match_operand:P 1 "memory_operand" "=m,ZC,m,ZC")
+ 	    (unspec:P
+ 	      [(mem:P (match_operand:P 2 "ssp_operand" "ZE,ZE,ZF,ZF"))]
+ 	      UNSPEC_SSP)))
+    (set (match_scratch:P 3 "=&r,&r,&r,&r") (const_int 0))]
+   ""
+ {
+   rtx t = (which_alternative >= 2 ? operands[0] : NULL_RTX);
+   loongarch_output_asm_load_canary (operands[3], operands[2], t);
+   output_asm_insn ((which_alternative & 1) ? "ldptr.d\t%0,%1"
+ 					   : "ld.d\t%0,%1",
+ 		   operands);
+   return "xor\t%0,%0,%3\n\tori\t%3,$r0,0";
+ }
+   [(set_attr "type" "load,load,load,load")
+    (set_attr "length" "24,24,36,36")])
+ 
+ (define_expand "stack_protect_combined_set"
+   [(match_operand 0 "memory_operand")
+    (match_operand 1 "memory_operand")]
+   ""
+ {
+   rtx canary = XEXP (operands[1], 0);
+   auto fn = (ssp_normal_operand (canary, VOIDmode)
+ 	     ? gen_stack_protect_combined_set_normal
+ 	     : gen_stack_protect_combined_set_extreme);
+ 
+   emit_insn (fn (Pmode, operands[0], canary));
+   DONE;
+ })
+ 
+ (define_expand "stack_protect_combined_test"
+   [(match_operand 0 "memory_operand")
+    (match_operand 1 "memory_operand")
+    (match_operand 2 "")]
+   ""
+ {
+   rtx t = gen_reg_rtx (Pmode);
+   rtx canary = XEXP (operands[1], 0);
+   emit_insn (gen_stack_protect_combined_test_internal (Pmode, t,
+ 						       operands[0],
+ 						       canary));
+   rtx cond = gen_rtx_EQ (VOIDmode, t, const0_rtx);
+   emit_jump_insn (gen_cbranch4 (Pmode, cond, t, const0_rtx, operands[2]));
+   DONE;
+ })
+ 
  ;; Synchronization instructions.
  
  (include "sync.md")
diff -Nrcpad gcc-16-20260509/gcc/config/loongarch/predicates.md gcc-16-20260516/gcc/config/loongarch/predicates.md
*** gcc-16-20260509/gcc/config/loongarch/predicates.md	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/loongarch/predicates.md	Sat May 16 22:32:05 2026
***************
*** 610,615 ****
--- 610,623 ----
   (ior (match_operand 0 "register_operand")
        (match_operand 0 "symbolic_off64_operand")))
  
+ ;; Currently stack canary must be the global symbol __stack_chk_guard.
+ (define_predicate "ssp_operand" (match_code "symbol_ref"))
+ 
+ ;; If the stack canary is within the normal/medium code model.
+ (define_predicate "ssp_normal_operand"
+   (and (match_operand 0 "ssp_operand")
+        (not (match_operand 0 "symbolic_off64_operand"))))
+ 
  (define_predicate "equality_operator"
    (match_code "eq,ne"))
  
diff -Nrcpad gcc-16-20260509/gcc/config/mingw/winnt.cc gcc-16-20260516/gcc/config/mingw/winnt.cc
*** gcc-16-20260509/gcc/config/mingw/winnt.cc	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/mingw/winnt.cc	Sat May 16 22:32:05 2026
*************** mingw_pe_file_end (void)
*** 860,866 ****
  			   "\t.p2align\t3, 0\n"
  	  		   "\t.globl\t%s\n"
  			   "\t.linkonce\tdiscard\n", oname, oname);
! 	  fprintf (asm_out_file, "%s:\n\t.quad\t%s\n", oname, name);
  	}
      }
  }
--- 860,868 ----
  			   "\t.p2align\t3, 0\n"
  	  		   "\t.globl\t%s\n"
  			   "\t.linkonce\tdiscard\n", oname, oname);
! 	  fprintf (asm_out_file, "%s:\n\t.quad\t", oname);
! 	  ASM_OUTPUT_LABELREF (asm_out_file, name);
! 	  fputc ('\n', asm_out_file);
  	}
      }
  }
diff -Nrcpad gcc-16-20260509/gcc/config/s390/s390.cc gcc-16-20260516/gcc/config/s390/s390.cc
*** gcc-16-20260509/gcc/config/s390/s390.cc	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/s390/s390.cc	Sat May 16 22:32:05 2026
*************** s390_secondary_reload (bool in_p, rtx x,
*** 5038,5043 ****
--- 5038,5047 ----
  	      __SECONDARY_RELOAD_CASE (V1DI, v1di);
  	      __SECONDARY_RELOAD_CASE (V2DI, v2di);
  	      __SECONDARY_RELOAD_CASE (V1TI, v1ti);
+ 	      __SECONDARY_RELOAD_CASE (V1HF, v1hf);
+ 	      __SECONDARY_RELOAD_CASE (V2HF, v2hf);
+ 	      __SECONDARY_RELOAD_CASE (V4HF, v4hf);
+ 	      __SECONDARY_RELOAD_CASE (V8HF, v8hf);
  	      __SECONDARY_RELOAD_CASE (V1SF, v1sf);
  	      __SECONDARY_RELOAD_CASE (V2SF, v2sf);
  	      __SECONDARY_RELOAD_CASE (V4SF, v4sf);
diff -Nrcpad gcc-16-20260509/gcc/config/s390/s390.md gcc-16-20260516/gcc/config/s390/s390.md
*** gcc-16-20260509/gcc/config/s390/s390.md	Sat May  9 22:32:05 2026
--- gcc-16-20260516/gcc/config/s390/s390.md	Sat May 16 22:32:05 2026
***************
*** 748,754 ****
  
  (define_mode_iterator ALL [TI DI SI HI QI TF FPRX2 DF SF HF TD DD SD V1QI V2QI
  			   V4QI V8QI V16QI V1HI V2HI V4HI V8HI V1SI V2SI V4SI
! 			   V1DI V2DI V1SF V2SF V4SF V1TI V1DF V2DF V1TF])
  
  ;; These mode iterators allow floating point patterns to be generated from the
  ;; same template.
--- 748,755 ----
  
  (define_mode_iterator ALL [TI DI SI HI QI TF FPRX2 DF SF HF TD DD SD V1QI V2QI
  			   V4QI V8QI V16QI V1HI V2HI V4HI V8HI V1SI V2SI V4SI
! 			   V1DI V2DI V1HF V2HF V4HF V8HF V1SF V2SF V4SF
! 			   V1TI V1DF V2DF V1TF])
  
  ;; These mode iterators allow floating point patterns to be generated from the
  ;; same template.
diff -Nrcpad gcc-16-20260509/gcc/cp/ChangeLog gcc-16-20260516/gcc/cp/ChangeLog
*** gcc-16-20260509/gcc/cp/ChangeLog	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/ChangeLog	Sat May 16 22:32:05 2026
***************
*** 1,3 ****
--- 1,113 ----
+ 2026-05-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125315
+ 	* constexpr.cc (init_subob_ctx): Allow both ctor and object
+ 	to be null for an empty subobject.
+ 
+ 2026-05-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-14  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124628
+ 	* reflect.cc (resolve_type_of_reflected_decl): New.
+ 	(get_reflection): Call resolve_type_of_reflected_decl instead
+ 	of mark_used.
+ 	(has_type): Call resolve_type_of_reflected_decl before
+ 	checking for an undeduced auto.
+ 	(eval_can_substitute): Likewise.  Also look through BASELINK.
+ 	(members_of_representable): Call resolve_type_of_reflected_decl
+ 	before checking for an undeduced auto.
+ 
+ 2026-05-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125184
+ 	* reflect.cc (check_out_of_consteval_use_r): Don't walk children of
+ 	USING_STMTs.
+ 
+ 2026-05-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125111
+ 	* reflect.cc (extract_ref): Throw instead of trying to build
+ 	arrays of functions, methods or arrays with NULL TYPE_DOMAIN.
+ 
+ 2026-05-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124991
+ 	* cp-tree.h (struct lang_type): Document typeinfo_var member.
+ 	(get_classtype_typeinfo_var): New inline function.
+ 	(CLASSTYPE_TYPEINFO_VAR): Use it.
+ 	(set_classtype_typeinfo_var): New inline function.
+ 	(SET_CLASSTYPE_TYPEINFO_VAR): Define.
+ 	(get_anon_aggr_type_field): New inline function.
+ 	(ANON_AGGR_TYPE_FIELD): Use it.
+ 	(set_anon_aggr_type_field): New inline function.
+ 	(SET_ANON_AGGR_TYPE_FIELD): Define.
+ 	* decl.cc (fixup_anonymous_aggr): Use SET_ANON_AGGR_TYPE_FIELD
+ 	instead of ANON_AGGR_TYPE_FIELD.
+ 	* module.cc (trees_in::read_class_def): Use
+ 	SET_CLASSTYPE_TYPEINFO_VAR instead of setting
+ 	CLASSTYPE_TYPEINFO_VAR and do it even for ANON_AGGR_TYPE_P
+ 	types.  Use SET_ANON_AGGR_TYPE_FIELD instead of setting
+ 	ANON_AGGR_TYPE_FIELD.
+ 	* rtti.cc (get_tinfo_decl_direct): Use SET_CLASSTYPE_TYPEINFO_VAR
+ 	instead of setting CLASSTYPE_TYPEINFO_VAR.
+ 	* semantics.cc (finish_member_declaration): Use
+ 	SET_ANON_AGGR_TYPE_FIELD instead of setting ANON_AGGR_TYPE_FIELD.
+ 
+ 2026-05-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125280
+ 	* reflect.cc (consteval_only_p): Don't complete_type.
+ 	(consteval_only_p_walker::walk): Return false for
+ 	error_mark_node.
+ 
+ 2026-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/100903
+ 	* call.cc (build_over_call): Avoid -Wzero-as-null-pointer-constant
+ 	if the warning is disabled around the called function.
+ 
+ 2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/115181
+ 	PR c++/125043
+ 	PR c++/124979
+ 	* pt.cc (invalid_tparm_referent_p): Allow DECL_IGNORED_P in an
+ 	assert.
+ 
+ 2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125208
+ 	* reflect.cc (compare_reflections): Use == when comparing two
+ 	aliases.
+ 	* tree.cc (cp_tree_equal) <case REFLECT_EXPR>: Use
+ 	compare_reflections.
+ 
  2026-05-07  Marek Polacek  <polacek@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260509/gcc/cp/call.cc gcc-16-20260516/gcc/cp/call.cc
*** gcc-16-20260509/gcc/cp/call.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/call.cc	Sat May 16 22:32:05 2026
*************** build_over_call (struct z_candidate *can
*** 10715,10724 ****
               func(NULL);
             }
        */
!       bool const conversion_warning = !(null_node_p (current_arg)
! 					&& DECL_TEMPLATE_INFO (fn)
! 					&& cand->template_decl
! 					&& !cand->explicit_targs);
  
        tsubst_flags_t const arg_complain
  	= conversion_warning ? complain : complain & ~tf_warning;
--- 10715,10732 ----
               func(NULL);
             }
        */
!       bool conversion_warning = !(null_node_p (current_arg)
! 				  && DECL_TEMPLATE_INFO (fn)
! 				  && cand->template_decl
! 				  && !cand->explicit_targs);
! 
!       /* Also don't warn about (x <=> y) < 0 (c++/100903).  */
!       if (conversion_warning
! 	  && integer_zerop (current_arg)
! 	  && warn_zero_as_null_pointer_constant
! 	  && !warning_enabled_at (DECL_SOURCE_LOCATION (fn),
! 				  OPT_Wzero_as_null_pointer_constant))
! 	conversion_warning = false;
  
        tsubst_flags_t const arg_complain
  	= conversion_warning ? complain : complain & ~tf_warning;
diff -Nrcpad gcc-16-20260509/gcc/cp/constexpr.cc gcc-16-20260516/gcc/cp/constexpr.cc
*** gcc-16-20260509/gcc/cp/constexpr.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/constexpr.cc	Sat May 16 22:32:05 2026
*************** init_subob_ctx (const constexpr_ctx *ctx
*** 6703,6709 ****
    else if (ctx->object)
      ctxtype = TREE_TYPE (ctx->object);
    else
!     gcc_unreachable ();
  
    if (VECTOR_TYPE_P (type)
        && VECTOR_TYPE_P (ctxtype)
--- 6703,6714 ----
    else if (ctx->object)
      ctxtype = TREE_TYPE (ctx->object);
    else
!     {
!       /* This can happen if the enclosing object is also an empty subobject
! 	 (c++/125315).  */
!       gcc_checking_assert (is_empty_class (type));
!       return;
!     }
  
    if (VECTOR_TYPE_P (type)
        && VECTOR_TYPE_P (ctxtype)
diff -Nrcpad gcc-16-20260509/gcc/cp/cp-tree.h gcc-16-20260516/gcc/cp/cp-tree.h
*** gcc-16-20260509/gcc/cp/cp-tree.h	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/cp-tree.h	Sat May 16 22:32:05 2026
*************** struct GTY(()) lang_type {
*** 2683,2688 ****
--- 2683,2691 ----
    tree primary_base;
    vec<tree_pair_s, va_gc> *vcall_indices;
    tree vtables;
+   /* CLASSTYPE_TYPEINFO_VAR and/or ANON_AGGR_TYPE_FIELD.  If both,
+      this is a TREE_LIST with the former as TREE_VALUE and the latter
+      as TREE_PURPOSE.  */
    tree typeinfo_var;
    vec<tree, va_gc> *vbases;
    tree as_base;
*************** struct GTY(()) lang_type {
*** 3076,3086 ****
  #define CLASSTYPE_VTABLES(NODE) \
    (LANG_TYPE_CLASS_CHECK (NODE)->vtables)
  
  /* The std::type_info variable representing this class, or NULL if no
     such variable has been created.  This field is only set for the
     TYPE_MAIN_VARIANT of the class.  */
  #define CLASSTYPE_TYPEINFO_VAR(NODE) \
!   (LANG_TYPE_CLASS_CHECK (NODE)->typeinfo_var)
  
  /* Accessor macros for the BINFO_VIRTUALS list.  */
  
--- 3079,3122 ----
  #define CLASSTYPE_VTABLES(NODE) \
    (LANG_TYPE_CLASS_CHECK (NODE)->vtables)
  
+ /* Helper for CLASSTYPE_TYPEINFO_VAR.  */
+ 
+ inline tree
+ get_classtype_typeinfo_var (tree typeinfo_var)
+ {
+   if (typeinfo_var == NULL_TREE)
+     return NULL_TREE;
+   if (TREE_CODE (typeinfo_var) == TREE_LIST)
+     return TREE_VALUE (typeinfo_var);
+   if (VAR_P (typeinfo_var))
+     return typeinfo_var;
+   return NULL_TREE;
+ }
+ 
  /* The std::type_info variable representing this class, or NULL if no
     such variable has been created.  This field is only set for the
     TYPE_MAIN_VARIANT of the class.  */
  #define CLASSTYPE_TYPEINFO_VAR(NODE) \
!   get_classtype_typeinfo_var (LANG_TYPE_CLASS_CHECK (NODE)->typeinfo_var)
! 
! /* Helper for SET_CLASSTYPE_TYPEINFO_VAR.  */
! 
! inline tree &
! set_classtype_typeinfo_var (tree &typeinfo_var)
! {
!   if (typeinfo_var == NULL_TREE)
!     return typeinfo_var;
!   if (TREE_CODE (typeinfo_var) == FIELD_DECL)
!     typeinfo_var = build_tree_list (typeinfo_var, NULL_TREE);
!   if (TREE_CODE (typeinfo_var) == TREE_LIST)
!     return TREE_VALUE (typeinfo_var);
!   return typeinfo_var;
! }
! 
! /* Setter for that.  */
! #define SET_CLASSTYPE_TYPEINFO_VAR(NODE, VAR) \
!   (set_classtype_typeinfo_var (LANG_TYPE_CLASS_CHECK (NODE)->typeinfo_var) \
!    = (VAR))
  
  /* Accessor macros for the BINFO_VIRTUALS list.  */
  
*************** get_vec_init_expr (tree t)
*** 5414,5422 ****
  #define ANON_UNION_TYPE_P(NODE) \
    (TREE_CODE (NODE) == UNION_TYPE && ANON_AGGR_TYPE_P (NODE))
  
  /* For an ANON_AGGR_TYPE_P the single FIELD_DECL it is used with.  */
  #define ANON_AGGR_TYPE_FIELD(NODE) \
!   (LANG_TYPE_CLASS_CHECK (NODE)->typeinfo_var)
  
  /* Define fields and accessors for nodes representing declared names.  */
  
--- 5450,5491 ----
  #define ANON_UNION_TYPE_P(NODE) \
    (TREE_CODE (NODE) == UNION_TYPE && ANON_AGGR_TYPE_P (NODE))
  
+ /* Helper for ANON_AGGR_TYPE_FIELD.  */
+ 
+ inline tree
+ get_anon_aggr_type_field (tree typeinfo_var)
+ {
+   if (typeinfo_var == NULL_TREE)
+     return NULL_TREE;
+   if (TREE_CODE (typeinfo_var) == TREE_LIST)
+     return TREE_PURPOSE (typeinfo_var);
+   if (TREE_CODE (typeinfo_var) == FIELD_DECL)
+     return typeinfo_var;
+   return NULL_TREE;
+ }
+ 
  /* For an ANON_AGGR_TYPE_P the single FIELD_DECL it is used with.  */
  #define ANON_AGGR_TYPE_FIELD(NODE) \
!   get_anon_aggr_type_field (LANG_TYPE_CLASS_CHECK (NODE)->typeinfo_var)
! 
! /* Helper for SET_ANON_AGGR_TYPE_FIELD.  */
! 
! inline tree &
! set_anon_aggr_type_field (tree &typeinfo_var)
! {
!   if (typeinfo_var == NULL_TREE)
!     return typeinfo_var;
!   if (VAR_P (typeinfo_var))
!     typeinfo_var = build_tree_list (NULL_TREE, typeinfo_var);
!   if (TREE_CODE (typeinfo_var) == TREE_LIST)
!     return TREE_PURPOSE (typeinfo_var);
!   return typeinfo_var;
! }
! 
! /* Setter for that.  */
! #define SET_ANON_AGGR_TYPE_FIELD(NODE, FIELD) \
!   (set_anon_aggr_type_field (LANG_TYPE_CLASS_CHECK (NODE)->typeinfo_var) \
!    = (FIELD))
  
  /* Define fields and accessors for nodes representing declared names.  */
  
diff -Nrcpad gcc-16-20260509/gcc/cp/decl.cc gcc-16-20260516/gcc/cp/decl.cc
*** gcc-16-20260509/gcc/cp/decl.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/decl.cc	Sat May 16 22:32:05 2026
*************** fixup_anonymous_aggr (tree t)
*** 6204,6210 ****
    vec_safe_truncate (vec, store);
  
    /* Wipe RTTI info.  */
!   CLASSTYPE_TYPEINFO_VAR (t) = NULL_TREE;
  
    /* Anonymous aggregates cannot have fields with ctors, dtors or complex
       assignment operators (because they cannot have these methods themselves).
--- 6204,6210 ----
    vec_safe_truncate (vec, store);
  
    /* Wipe RTTI info.  */
!   SET_CLASSTYPE_TYPEINFO_VAR (t, NULL_TREE);
  
    /* Anonymous aggregates cannot have fields with ctors, dtors or complex
       assignment operators (because they cannot have these methods themselves).
diff -Nrcpad gcc-16-20260509/gcc/cp/module.cc gcc-16-20260516/gcc/cp/module.cc
*** gcc-16-20260509/gcc/cp/module.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/module.cc	Sat May 16 22:32:05 2026
*************** trees_in::read_class_def (tree defn, tre
*** 13735,13743 ****
  		{
  		  CLASSTYPE_BEFRIENDING_CLASSES (type_dup)
  		    = CLASSTYPE_BEFRIENDING_CLASSES (type);
! 		  if (!ANON_AGGR_TYPE_P (type))
! 		    CLASSTYPE_TYPEINFO_VAR (type_dup)
! 		      = CLASSTYPE_TYPEINFO_VAR (type);
  		}
  	      for (tree v = type; v; v = TYPE_NEXT_VARIANT (v))
  		TYPE_LANG_SPECIFIC (v) = ls;
--- 13735,13742 ----
  		{
  		  CLASSTYPE_BEFRIENDING_CLASSES (type_dup)
  		    = CLASSTYPE_BEFRIENDING_CLASSES (type);
! 		  SET_CLASSTYPE_TYPEINFO_VAR (type_dup,
! 					      CLASSTYPE_TYPEINFO_VAR (type));
  		}
  	      for (tree v = type; v; v = TYPE_NEXT_VARIANT (v))
  		TYPE_LANG_SPECIFIC (v) = ls;
*************** trees_in::read_class_def (tree defn, tre
*** 13778,13784 ****
  		       to the as-base FIELD_DECL copy.  */
  		    gcc_checking_assert (ANON_AGGR_TYPE_FIELD (anon_type));
  		  else
! 		    ANON_AGGR_TYPE_FIELD (anon_type) = decl;
  		}
  
  	      if (TREE_CODE (decl) == USING_DECL
--- 13777,13783 ----
  		       to the as-base FIELD_DECL copy.  */
  		    gcc_checking_assert (ANON_AGGR_TYPE_FIELD (anon_type));
  		  else
! 		    SET_ANON_AGGR_TYPE_FIELD (anon_type, decl);
  		}
  
  	      if (TREE_CODE (decl) == USING_DECL
diff -Nrcpad gcc-16-20260509/gcc/cp/pt.cc gcc-16-20260516/gcc/cp/pt.cc
*** gcc-16-20260509/gcc/cp/pt.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/pt.cc	Sat May 16 22:32:05 2026
*************** invalid_tparm_referent_p (tree type, tre
*** 7439,7456 ****
  			"because %qD has no linkage", expr, type, decl);
  	    return true;
  	  }
! 	/* C++17: For a non-type template-parameter of reference or pointer
! 	   type, the value of the constant expression shall not refer to (or
! 	   for a pointer type, shall not be the address of):
! 	   * a subobject (4.5),
! 	   * a temporary object (15.2),
! 	   * a string literal (5.13.5),
! 	   * the result of a typeid expression (8.2.8), or
! 	   * a predefined __func__ variable (11.4.1).  */
  	else if (VAR_P (decl) && DECL_ARTIFICIAL (decl)
  		 && !DECL_NTTP_OBJECT_P (decl))
  	  {
! 	    gcc_checking_assert (DECL_TINFO_P (decl) || DECL_FNAME_P (decl));
  	    if (complain & tf_error)
  	      error ("the address of %qD is not a valid template argument",
  		     decl);
--- 7439,7460 ----
  			"because %qD has no linkage", expr, type, decl);
  	    return true;
  	  }
! 	/* For a constant template parameter of reference or pointer type,
! 	   or for each non-static data member of reference or pointer type
! 	   in a constant template parameter of class type or subobject thereof,
! 	   the reference or pointer value shall not refer or point to
! 	   (respectively):
! 	   -- a temporary object,
! 	   -- a string literal object,
! 	   -- the result of a typeid expression,
! 	   -- a predefined __func__ variable, or
! 	   -- a subobject of one of the above.  */
  	else if (VAR_P (decl) && DECL_ARTIFICIAL (decl)
  		 && !DECL_NTTP_OBJECT_P (decl))
  	  {
! 	    gcc_checking_assert (DECL_TINFO_P (decl)
! 				 || DECL_FNAME_P (decl)
! 				 || DECL_IGNORED_P (decl));
  	    if (complain & tf_error)
  	      error ("the address of %qD is not a valid template argument",
  		     decl);
diff -Nrcpad gcc-16-20260509/gcc/cp/reflect.cc gcc-16-20260516/gcc/cp/reflect.cc
*** gcc-16-20260509/gcc/cp/reflect.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/reflect.cc	Sat May 16 22:32:05 2026
*************** init_reflection ()
*** 74,79 ****
--- 74,92 ----
    pop_namespace ();
  }
  
+ /* Ensure the type of DECL is fully resolved by performing return
+    type deduction and deferred noexcept instantiation.  */
+ 
+ static void
+ resolve_type_of_reflected_decl (tree decl)
+ {
+   /* Quietly calling mark_used in an unevaluated context will perform
+      all necessary checks and instantiations while suppressing constraint
+      unsatisfaction and deletedness diagnostics.  */
+   cp_unevaluated u;
+   mark_used (decl, tf_none);
+ }
+ 
  /* Create a REFLECT_EXPR expression of kind KIND around T.  */
  
  static tree
*************** get_reflection (location_t loc, tree t,
*** 210,217 ****
        t = resolve_nondeduced_context_or_error (t, tf_warning_or_error);
        /* The argument could have a deduced return type, so we need to
  	 instantiate it now to find out its type.  */
!       if (!mark_used (t))
! 	return error_mark_node;
        /* Avoid -Wunused-but-set* warnings when a variable or parameter
  	 is just set and reflected.  */
        if (VAR_P (t) || TREE_CODE (t) == PARM_DECL)
--- 223,229 ----
        t = resolve_nondeduced_context_or_error (t, tf_warning_or_error);
        /* The argument could have a deduced return type, so we need to
  	 instantiate it now to find out its type.  */
!       resolve_type_of_reflected_decl (t);
        /* Avoid -Wunused-but-set* warnings when a variable or parameter
  	 is just set and reflected.  */
        if (VAR_P (t) || TREE_CODE (t) == PARM_DECL)
*************** has_type (tree r, reflect_kind kind)
*** 2539,2544 ****
--- 2551,2557 ----
      {
        if (DECL_CONSTRUCTOR_P (r) || DECL_DESTRUCTOR_P (r))
  	return false;
+       resolve_type_of_reflected_decl (r);
        if (undeduced_auto_decl (r))
  	return false;
        return true;
*************** eval_can_substitute (location_t loc, con
*** 5537,5542 ****
--- 5550,5557 ----
        if (fn == error_mark_node)
  	return boolean_false_node;
        fn = resolve_nondeduced_context_or_error (fn, tf_none);
+       fn = MAYBE_BASELINK_FUNCTIONS (fn);
+       resolve_type_of_reflected_decl (fn);
        if (fn == error_mark_node || undeduced_auto_decl (fn))
  	return boolean_false_node;
        return boolean_true_node;
*************** members_of_representable_p (tree c, tree
*** 6764,6771 ****
  	  || TREE_CODE (r) == FIELD_DECL
  	  || TREE_CODE (r) == NAMESPACE_DECL)
  	return true;
!       if (VAR_OR_FUNCTION_DECL_P (r) && !undeduced_auto_decl (r))
! 	return true;
      }
    return false;
  }
--- 6779,6790 ----
  	  || TREE_CODE (r) == FIELD_DECL
  	  || TREE_CODE (r) == NAMESPACE_DECL)
  	return true;
!       if (VAR_OR_FUNCTION_DECL_P (r))
! 	{
! 	  resolve_type_of_reflected_decl (r);
! 	  if (!undeduced_auto_decl (r))
! 	    return true;
! 	}
      }
    return false;
  }
*************** extract_ref (location_t loc, const const
*** 7458,7463 ****
--- 7477,7486 ----
      {
        if (TYPE_REF_P (type))
  	type = TREE_TYPE (type);
+       if (FUNC_OR_METHOD_TYPE_P (type)
+ 	  || (TREE_CODE (type) == ARRAY_TYPE
+ 	      && TYPE_DOMAIN (type) == NULL_TREE))
+ 	return error_mark_node;
        type = build_cplus_array_type (type, NULL_TREE);
        return build_pointer_type (type);
      };
*************** extract_ref (location_t loc, const const
*** 7467,7473 ****
      {
        /* The wording is saying that U is the type of r.  */
        tree U = TREE_TYPE (r);
!       if (is_convertible (adjust_type (U), adjust_type (T))
  	  && (!var_p || is_constant_expression (r)))
  	{
  	  if (TYPE_REF_P (TREE_TYPE (r)))
--- 7490,7500 ----
      {
        /* The wording is saying that U is the type of r.  */
        tree U = TREE_TYPE (r);
!       tree adju = adjust_type (U);
!       tree adjt = adjust_type (T);
!       if (adju != error_mark_node
! 	  && adjt != error_mark_node
! 	  && is_convertible (adju, adjt)
  	  && (!var_p || is_constant_expression (r)))
  	{
  	  if (TYPE_REF_P (TREE_TYPE (r)))
*************** consteval_only_p (tree t)
*** 8611,8623 ****
    if (dependent_type_p (t))
      return false;
  
-   /* We need the complete type otherwise we'd have no fields for class
-      templates and thus come up with zilch for things like
-        template<typename T>
-        struct X : T { };
-      which could be consteval-only, depending on T.  */
-   t = complete_type (t);
- 
    consteval_only_p_walker walker;
    return walker.walk (t).is_true ();
  }
--- 8638,8643 ----
*************** consteval_only_p (tree t)
*** 8629,8634 ****
--- 8649,8657 ----
  tristate
  consteval_only_p_walker::walk (tree t)
  {
+   if (t == error_mark_node)
+     return false;
+ 
    t = TYPE_MAIN_VARIANT (t);
  
    if (REFLECTION_TYPE_P (t))
*************** check_out_of_consteval_use_r (tree *tp,
*** 8713,8718 ****
--- 8736,8743 ----
        || TREE_CODE (t) == INIT_EXPR
        /* And don't recurse on DECL_EXPRs.  */
        || TREE_CODE (t) == DECL_EXPR
+       /* Neither into USING_STMT.  */
+       || TREE_CODE (t) == USING_STMT
        /* Blocks can appear in the TREE_VEC operand of OpenMP
  	 depend/affinity/map/to/from OMP_CLAUSEs when using iterators.  */
        || TREE_CODE (t) == BLOCK)
*************** compare_reflections (tree lhs, tree rhs)
*** 8934,8942 ****
      return lhs == rhs;
    else if (TYPE_P (lhs) && TYPE_P (rhs))
      {
!       /* Given "using A = int;", "^^int != ^^A" should hold.  */
!       if (typedef_variant_p (lhs) != typedef_variant_p (rhs))
! 	return false;
        /* This is for comparing function types.  E.g.,
  	  auto fn() -> int; type_of(^^fn) == ^^auto()->int;  */
        return same_type_p (lhs, rhs);
--- 8959,8970 ----
      return lhs == rhs;
    else if (TYPE_P (lhs) && TYPE_P (rhs))
      {
!       /* Given
! 	  using A = int;
! 	  using B = int;
! 	 ^^int != ^^A and ^^A != ^^B.  */
!       if (typedef_variant_p (lhs) || typedef_variant_p (rhs))
! 	return lhs == rhs;
        /* This is for comparing function types.  E.g.,
  	  auto fn() -> int; type_of(^^fn) == ^^auto()->int;  */
        return same_type_p (lhs, rhs);
diff -Nrcpad gcc-16-20260509/gcc/cp/rtti.cc gcc-16-20260516/gcc/cp/rtti.cc
*** gcc-16-20260509/gcc/cp/rtti.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/rtti.cc	Sat May 16 22:32:05 2026
*************** get_tinfo_decl_direct (tree type, tree n
*** 490,496 ****
  
        d = pushdecl_top_level_and_finish (d, NULL_TREE);
        if (CLASS_TYPE_P (type))
! 	CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)) = d;
  
        /* Add decl to the global array of tinfo decls.  */
        vec_safe_push (unemitted_tinfo_decls, d);
--- 490,496 ----
  
        d = pushdecl_top_level_and_finish (d, NULL_TREE);
        if (CLASS_TYPE_P (type))
! 	SET_CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type), d);
  
        /* Add decl to the global array of tinfo decls.  */
        vec_safe_push (unemitted_tinfo_decls, d);
diff -Nrcpad gcc-16-20260509/gcc/cp/semantics.cc gcc-16-20260516/gcc/cp/semantics.cc
*** gcc-16-20260509/gcc/cp/semantics.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/semantics.cc	Sat May 16 22:32:05 2026
*************** finish_member_declaration (tree decl)
*** 4284,4290 ****
        && ANON_AGGR_TYPE_P (TREE_TYPE (decl)))
      {
        gcc_assert (!ANON_AGGR_TYPE_FIELD (TYPE_MAIN_VARIANT (TREE_TYPE (decl))));
!       ANON_AGGR_TYPE_FIELD (TYPE_MAIN_VARIANT (TREE_TYPE (decl))) = decl;
      }
  
    if (TREE_CODE (decl) == USING_DECL)
--- 4284,4290 ----
        && ANON_AGGR_TYPE_P (TREE_TYPE (decl)))
      {
        gcc_assert (!ANON_AGGR_TYPE_FIELD (TYPE_MAIN_VARIANT (TREE_TYPE (decl))));
!       SET_ANON_AGGR_TYPE_FIELD (TYPE_MAIN_VARIANT (TREE_TYPE (decl)), decl);
      }
  
    if (TREE_CODE (decl) == USING_DECL)
diff -Nrcpad gcc-16-20260509/gcc/cp/tree.cc gcc-16-20260516/gcc/cp/tree.cc
*** gcc-16-20260509/gcc/cp/tree.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/cp/tree.cc	Sat May 16 22:32:05 2026
*************** cp_tree_equal (tree t1, tree t2)
*** 4512,4531 ****
        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;
--- 4512,4518 ----
        return true;
  
      case REFLECT_EXPR:
!       return compare_reflections (t1, t2);
  
      default:
        break;
diff -Nrcpad gcc-16-20260509/gcc/fortran/ChangeLog gcc-16-20260516/gcc/fortran/ChangeLog
*** gcc-16-20260509/gcc/fortran/ChangeLog	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/fortran/ChangeLog	Sat May 16 22:32:05 2026
***************
*** 1,3 ****
--- 1,36 ----
+ 2026-05-13  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-07  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/125192
+ 	PR fortran/125198
+ 	* trans-array.cc (gfc_conv_expr_descriptor): Add bounds checking
+ 	code to the outermost loop's preliminary block.
+ 
+ 2026-05-13  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-07  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	* trans-array.cc (trans_array_bound_check): Replace references
+ 	to SE->PRE with references to the new argument BLOCK.  Remove
+ 	argument SE.
+ 	(array_bound_check_elemental): Likewise.  Update caller.
+ 	(conv_array_index_offset): Update caller.
+ 	(gfc_conv_expr_descriptor): Update caller.
+ 
+ 2026-05-13  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-05-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/111952
+ 	PR fortran/125059
+ 	* trans-decl.cc (gfc_finish_var_decl): Remove bogus code forcing
+ 	a DT variable with DTIO as static.
+ 	* trans-io.cc (gfc_build_io_library_fndecls): Fix fnspec attribute.
+ 
  2026-04-30  Release Manager
  
  	* GCC 16.1.0 released.
diff -Nrcpad gcc-16-20260509/gcc/fortran/trans-array.cc gcc-16-20260516/gcc/fortran/trans-array.cc
*** gcc-16-20260509/gcc/fortran/trans-array.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/fortran/trans-array.cc	Sat May 16 22:32:05 2026
*************** abridged_ref_name (gfc_expr * expr, gfc_
*** 3910,3916 ****
  /* Generate code to perform an array index bound check.  */
  
  static tree
! trans_array_bound_check (gfc_se * se, gfc_ss *ss, tree index, int n,
  			 locus * where, bool check_upper,
  			 const char *compname = NULL)
  {
--- 3910,3916 ----
  /* Generate code to perform an array index bound check.  */
  
  static tree
! trans_array_bound_check (stmtblock_t *block, gfc_ss *ss, tree index, int n,
  			 locus * where, bool check_upper,
  			 const char *compname = NULL)
  {
*************** trans_array_bound_check (gfc_se * se, gf
*** 3927,3933 ****
  
    descriptor = ss->info->data.array.descriptor;
  
!   index = gfc_evaluate_now (index, &se->pre);
  
    /* We find a name for the error message.  */
    name = ss->info->expr->symtree->n.sym->name;
--- 3927,3933 ----
  
    descriptor = ss->info->data.array.descriptor;
  
!   index = gfc_evaluate_now (index, block);
  
    /* We find a name for the error message.  */
    name = ss->info->expr->symtree->n.sym->name;
*************** trans_array_bound_check (gfc_se * se, gf
*** 3961,3973 ****
  
        fault = fold_build2_loc (input_location, LT_EXPR, logical_type_node,
  			       index, tmp_lo);
!       gfc_trans_runtime_check (true, false, fault, &se->pre, where, msg,
  			       fold_convert (long_integer_type_node, index),
  			       fold_convert (long_integer_type_node, tmp_lo),
  			       fold_convert (long_integer_type_node, tmp_up));
        fault = fold_build2_loc (input_location, GT_EXPR, logical_type_node,
  			       index, tmp_up);
!       gfc_trans_runtime_check (true, false, fault, &se->pre, where, msg,
  			       fold_convert (long_integer_type_node, index),
  			       fold_convert (long_integer_type_node, tmp_lo),
  			       fold_convert (long_integer_type_node, tmp_up));
--- 3961,3973 ----
  
        fault = fold_build2_loc (input_location, LT_EXPR, logical_type_node,
  			       index, tmp_lo);
!       gfc_trans_runtime_check (true, false, fault, block, where, msg,
  			       fold_convert (long_integer_type_node, index),
  			       fold_convert (long_integer_type_node, tmp_lo),
  			       fold_convert (long_integer_type_node, tmp_up));
        fault = fold_build2_loc (input_location, GT_EXPR, logical_type_node,
  			       index, tmp_up);
!       gfc_trans_runtime_check (true, false, fault, block, where, msg,
  			       fold_convert (long_integer_type_node, index),
  			       fold_convert (long_integer_type_node, tmp_lo),
  			       fold_convert (long_integer_type_node, tmp_up));
*************** trans_array_bound_check (gfc_se * se, gf
*** 3986,3992 ****
  
        fault = fold_build2_loc (input_location, LT_EXPR, logical_type_node,
  			       index, tmp_lo);
!       gfc_trans_runtime_check (true, false, fault, &se->pre, where, msg,
  			       fold_convert (long_integer_type_node, index),
  			       fold_convert (long_integer_type_node, tmp_lo));
        free (msg);
--- 3986,3992 ----
  
        fault = fold_build2_loc (input_location, LT_EXPR, logical_type_node,
  			       index, tmp_lo);
!       gfc_trans_runtime_check (true, false, fault, block, where, msg,
  			       fold_convert (long_integer_type_node, index),
  			       fold_convert (long_integer_type_node, tmp_lo));
        free (msg);
*************** gfc_expr_contains_impure_fcn (gfc_expr *
*** 4023,4029 ****
  /* Generate code for bounds checking for elemental dimensions.  */
  
  static void
! array_bound_check_elemental (gfc_se * se, gfc_ss * ss, gfc_expr * expr)
  {
    gfc_array_ref *ar;
    gfc_ref *ref;
--- 4023,4029 ----
  /* Generate code for bounds checking for elemental dimensions.  */
  
  static void
! array_bound_check_elemental (stmtblock_t *block, gfc_ss * ss, gfc_expr * expr)
  {
    gfc_array_ref *ar;
    gfc_ref *ref;
*************** array_bound_check_elemental (gfc_se * se
*** 4052,4059 ****
  		      gfc_init_se (&indexse, NULL);
  		      gfc_conv_expr_type (&indexse, ar->start[dim],
  					  gfc_array_index_type);
! 		      gfc_add_block_to_block (&se->pre, &indexse.pre);
! 		      trans_array_bound_check (se, ss, indexse.expr, dim,
  					       &ar->where,
  					       ar->as->type != AS_ASSUMED_SIZE
  					       || dim < ar->dimen - 1,
--- 4052,4059 ----
  		      gfc_init_se (&indexse, NULL);
  		      gfc_conv_expr_type (&indexse, ar->start[dim],
  					  gfc_array_index_type);
! 		      gfc_add_block_to_block (block, &indexse.pre);
! 		      trans_array_bound_check (block, ss, indexse.expr, dim,
  					       &ar->where,
  					       ar->as->type != AS_ASSUMED_SIZE
  					       || dim < ar->dimen - 1,
*************** conv_array_index_offset (gfc_se * se, gf
*** 4098,4104 ****
  	  /* We've already translated this value outside the loop.  */
  	  index = info->subscript[dim]->info->data.scalar.value;
  
! 	  index = trans_array_bound_check (se, ss, index, dim, &ar->where,
  					   ar->as->type != AS_ASSUMED_SIZE
  					   || dim < ar->dimen - 1);
  	  break;
--- 4098,4104 ----
  	  /* We've already translated this value outside the loop.  */
  	  index = info->subscript[dim]->info->data.scalar.value;
  
! 	  index = trans_array_bound_check (&se->pre, ss, index, dim, &ar->where,
  					   ar->as->type != AS_ASSUMED_SIZE
  					   || dim < ar->dimen - 1);
  	  break;
*************** conv_array_index_offset (gfc_se * se, gf
*** 4127,4133 ****
  	  index = fold_convert (gfc_array_index_type, index);
  
  	  /* Do any bounds checking on the final info->descriptor index.  */
! 	  index = trans_array_bound_check (se, ss, index, dim, &ar->where,
  					   ar->as->type != AS_ASSUMED_SIZE
  					   || dim < ar->dimen - 1);
  	  break;
--- 4127,4133 ----
  	  index = fold_convert (gfc_array_index_type, index);
  
  	  /* Do any bounds checking on the final info->descriptor index.  */
! 	  index = trans_array_bound_check (&se->pre, ss, index, dim, &ar->where,
  					   ar->as->type != AS_ASSUMED_SIZE
  					   || dim < ar->dimen - 1);
  	  break;
*************** gfc_conv_expr_descriptor (gfc_se *se, gf
*** 8652,8658 ****
  
    /* Add bounds-checking for elemental dimensions.  */
    if ((gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) && !expr->no_bounds_check)
!     array_bound_check_elemental (se, ss, expr);
  
    if (need_tmp)
      {
--- 8652,8658 ----
  
    /* Add bounds-checking for elemental dimensions.  */
    if ((gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) && !expr->no_bounds_check)
!     array_bound_check_elemental (&outermost_loop (&loop)->pre, ss, expr);
  
    if (need_tmp)
      {
diff -Nrcpad gcc-16-20260509/gcc/fortran/trans-decl.cc gcc-16-20260516/gcc/fortran/trans-decl.cc
*** gcc-16-20260509/gcc/fortran/trans-decl.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/fortran/trans-decl.cc	Sat May 16 22:32:05 2026
*************** gfc_finish_var_decl (tree decl, gfc_symb
*** 756,771 ****
  		&& sym->attr.codimension && !sym->attr.allocatable)))
      TREE_STATIC (decl) = 1;
  
-   /* If derived-type variables with DTIO procedures are not made static
-      some bits of code referencing them get optimized away.
-      TODO Understand why this is so and fix it.  */
-   if (!sym->attr.use_assoc
-       && ((sym->ts.type == BT_DERIVED
-            && sym->ts.u.derived->attr.has_dtio_procs)
- 	  || (sym->ts.type == BT_CLASS
- 	      && CLASS_DATA (sym)->ts.u.derived->attr.has_dtio_procs)))
-     TREE_STATIC (decl) = 1;
- 
    /* Treat asynchronous variables the same as volatile, for now.  */
    if (sym->attr.volatile_ || sym->attr.asynchronous)
      {
--- 756,761 ----
diff -Nrcpad gcc-16-20260509/gcc/fortran/trans-io.cc gcc-16-20260516/gcc/fortran/trans-io.cc
*** gcc-16-20260509/gcc/fortran/trans-io.cc	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/fortran/trans-io.cc	Sat May 16 22:32:05 2026
*************** gfc_build_io_library_fndecls (void)
*** 416,422 ****
  	integer_type_node, gfc_charlen_type_node);
  
    iocall[IOCALL_X_DERIVED] = gfc_build_library_function_decl_with_spec (
! 	get_identifier (PREFIX("transfer_derived")), ". w r ",
  	void_type_node, 2, dt_parm_type, pvoid_type_node);
  
    /* Library entry points */
--- 416,422 ----
  	integer_type_node, gfc_charlen_type_node);
  
    iocall[IOCALL_X_DERIVED] = gfc_build_library_function_decl_with_spec (
! 	get_identifier (PREFIX("transfer_derived")), ". w w ",
  	void_type_node, 2, dt_parm_type, pvoid_type_node);
  
    /* Library entry points */
diff -Nrcpad gcc-16-20260509/gcc/match.pd gcc-16-20260516/gcc/match.pd
*** gcc-16-20260509/gcc/match.pd	Sat May  9 22:32:06 2026
--- gcc-16-20260516/gcc/match.pd	Sat May 16 22:32:06 2026
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 5734,5742 ****
    (view_convert (BIT_FIELD_REF@0 @1 @2 @3))
    (if (is_gimple_reg_type (type)
         && (!INTEGRAL_TYPE_P (type)
! 	   || !INTEGRAL_TYPE_P (TREE_TYPE (@0))
! 	   || (type_has_mode_precision_p (type)
! 	       && type_has_mode_precision_p (TREE_TYPE (@0)))))
     (BIT_FIELD_REF:type @1 @2 @3)))
  
  /* For integral conversions with the same precision or pointer
--- 5734,5742 ----
    (view_convert (BIT_FIELD_REF@0 @1 @2 @3))
    (if (is_gimple_reg_type (type)
         && (!INTEGRAL_TYPE_P (type)
! 	   || type_has_mode_precision_p (type))
!        && (!INTEGRAL_TYPE_P (TREE_TYPE (@0))
! 	   || type_has_mode_precision_p (TREE_TYPE (@0))))
     (BIT_FIELD_REF:type @1 @2 @3)))
  
  /* For integral conversions with the same precision or pointer
diff -Nrcpad gcc-16-20260509/gcc/testsuite/ChangeLog gcc-16-20260516/gcc/testsuite/ChangeLog
*** gcc-16-20260509/gcc/testsuite/ChangeLog	Sat May  9 22:32:07 2026
--- gcc-16-20260516/gcc/testsuite/ChangeLog	Sat May 16 22:32:06 2026
***************
*** 1,3 ****
--- 1,182 ----
+ 2026-05-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-05-13  H.J. Lu  <hjl.tools@gmail.com>
+ 		    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120870
+ 	* gcc.target/i386/pr120870-1.c: New test.
+ 	* gcc.target/i386/pr120870-2.c: Likewise.
+ 
+ 2026-05-15  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR c/124532
+ 	* c-c++-common/pr124532.c: New test.
+ 
+ 2026-05-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-05-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR tree-optimization/125291
+ 	* gcc.c-torture/execute/pr125291.c: New test.
+ 
+ 2026-05-15  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* lib/lto.exp: Make file listing case sensitive by doing case
+ 	sensitive filter after directory listing.
+ 
+ 2026-05-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/125308
+ 	* gcc.target/i386/pr125308.c: New test.
+ 
+ 2026-05-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125315
+ 	* g++.dg/cpp2a/no_unique_address16.C: New test.
+ 
+ 2026-05-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-14  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124628
+ 	* g++.dg/reflect/can_substitute2.C: New test.
+ 	* g++.dg/reflect/members_of14.C: New test.
+ 	* g++.dg/reflect/substitute3.C: Adjust test so that f<int>'s
+ 	return type fails to get deduced.
+ 	* g++.dg/reflect/type_of3.C: Also test type_of of a templated
+ 	member function with deduced return type.
+ 
+ 2026-05-14  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR target/124316
+ 	* gcc.target/i386/pr124316.c: New test.
+ 
+ 2026-05-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125184
+ 	* g++.dg/reflect/using3.C: New test.
+ 
+ 2026-05-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125111
+ 	* g++.dg/reflect/extract12.C: New test.
+ 
+ 2026-05-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124991
+ 	* g++.dg/reflect/anon5.C: New test.
+ 
+ 2026-05-13  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-07  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/125192
+ 	PR fortran/125198
+ 	* gfortran.dg/bounds_check_29.f90: New test.
+ 
+ 2026-05-13  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-05-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/111952
+ 	PR fortran/125059
+ 	* gfortran.dg/dtio_37.f90: New test.
+ 
+ 2026-05-13  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-05-06  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR libfortran/125095
+ 	* gfortran.dg/namelist_102.f90: New test.
+ 
+ 2026-05-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125280
+ 	* g++.dg/reflect/init19.C: New test.
+ 	* g++.dg/reflect/type12.C: New test.
+ 	* g++.dg/reflect/type13.C: New test.
+ 
+ 2026-05-13  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-05-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/125049
+ 	* gcc.target/loongarch/pr125049.c: New test.
+ 
+ 2026-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/100903
+ 	* g++.dg/cpp2a/spaceship-warn1.C: New test.
+ 
+ 2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/115181
+ 	PR c++/125043
+ 	PR c++/124979
+ 	* g++.dg/cpp1z/nontype-auto27.C: New test.
+ 	* g++.dg/cpp1z/nontype-auto28.C: New test.
+ 	* g++.dg/cpp2a/nontype-class75.C: New test.
+ 
+ 2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* g++.dg/reflect/bases_of5.C: Use decltype (sizeof 0) instead of
+ 	unsigned long.
+ 
+ 2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125208
+ 	* g++.dg/reflect/alias3.C: New test.
+ 	* g++.dg/reflect/bases_of5.C: New test.
+ 
+ 2026-05-12  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	Backported from master:
+ 	2026-05-12  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	PR middle-end/125259
+ 	* gcc.dg/tree-ssa/pr125259.c: New test.
+ 
+ 2026-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/enum6.adb: New test.
+ 
  2026-05-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260509/gcc/testsuite/c-c++-common/pr124532.c gcc-16-20260516/gcc/testsuite/c-c++-common/pr124532.c
*** gcc-16-20260509/gcc/testsuite/c-c++-common/pr124532.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/c-c++-common/pr124532.c	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target { musttail && { c || c++11 } } } } */
+ 
+ extern int f(void);
+ 
+ static int g(void) {
+   [[gnu::musttail]] return f();
+   return 42;
+ }
+ 
+ static int g2(void) {
+   if (1) [[gnu::musttail]] return f();
+   return 42;
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/cpp1z/nontype-auto27.C gcc-16-20260516/gcc/testsuite/g++.dg/cpp1z/nontype-auto27.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/cpp1z/nontype-auto27.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/cpp1z/nontype-auto27.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/115181
+ // { dg-do compile { target c++17 } }
+ 
+ template <auto> struct S {};
+ __extension__ S<(int[]){1}> x;  // { dg-error "not a valid template argument" }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/cpp1z/nontype-auto28.C gcc-16-20260516/gcc/testsuite/g++.dg/cpp1z/nontype-auto28.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/cpp1z/nontype-auto28.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/cpp1z/nontype-auto28.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/125043
+ // { dg-do compile { target c++17 } }
+ 
+ template <auto V>
+ struct wrapper {
+     static constexpr const auto& value = V;
+ };
+ 
+ template <int const& I>
+ auto f() -> void;
+ 
+ auto main() -> int {
+     f<wrapper<42>::value>();  // { dg-error "no matching function|not a valid template argument" }
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C gcc-16-20260516/gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/125315
+ // { dg-do compile { target c++20 } }
+ // { dg-prune-output "used but never defined" }
+ 
+ struct S{~S(){}};
+ constexpr S& f(S& t);
+ struct W{[[no_unique_address]]S v;};
+ struct R:W{};
+ S s;
+ auto x=R{{f(s)}};
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/cpp2a/nontype-class75.C gcc-16-20260516/gcc/testsuite/g++.dg/cpp2a/nontype-class75.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/cpp2a/nontype-class75.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/cpp2a/nontype-class75.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,34 ----
+ // PR c++/124979
+ // { dg-do compile { target c++20 } }
+ 
+ template<auto X, class = decltype(X)>
+ struct cw;
+ 
+ struct base {
+ 
+     template <class L>
+     friend constexpr auto operator &(L) noexcept
+         -> cw<(&L::value)> {
+         return {};
+     }
+ };
+ 
+ template<auto X, class>
+ struct cw : base {
+     static constexpr const auto& value = X;
+ };
+     template <auto L, auto R>
+     constexpr auto operator ->*(cw<L>, cw<R>) noexcept
+         -> cw<L ->* R> {
+         return {};
+     }
+ 
+ struct Divide { int value; };
+ auto cvalue = cw<&Divide::value>{};
+ constexpr const Divide &t = {42};
+ auto co = cw<Divide{42}>{};
+ auto co1 = cw<&t>{};  // { dg-error "not a valid template argument|is invalid" }
+ 
+ template<class> class TD;
+ template<int t> class TD<cw<t>>{};
+ TD<decltype((co1)->*cvalue)> _;	  // { dg-error "is invalid" }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/cpp2a/spaceship-warn1.C gcc-16-20260516/gcc/testsuite/g++.dg/cpp2a/spaceship-warn1.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/cpp2a/spaceship-warn1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/cpp2a/spaceship-warn1.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/100903
+ // { dg-additional-options -Wzero-as-null-pointer-constant }
+ // { dg-do compile { target c++20 } }
+ 
+ #include <compare>
+ 
+ int main()
+ {
+   return (1.0 <=> 2.0) < 0;
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/alias3.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/alias3.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/alias3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/alias3.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/125208
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ using A = int;
+ using B = int;
+ using C = A;
+ static_assert (^^A == ^^A);
+ static_assert (^^const A == ^^const A);
+ static_assert (^^A != ^^const A);
+ static_assert (^^B == ^^B);
+ static_assert (^^C == ^^C);
+ static_assert (^^A != ^^B);
+ static_assert (^^A != ^^C);
+ static_assert (^^B != ^^C);
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/anon5.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/anon5.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/anon5.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/anon5.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/124991
+ // { dg-do run { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ struct X { union { char b; float c; }; };
+ constexpr auto ctx = std::meta::access_context::unchecked ();
+ 
+ int
+ main ()
+ {
+   if (typeid (typename [: parent_of (^^X::b) :])
+       != typeid (typename [: members_of (^^X, ctx)[0] :]))
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/bases_of5.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/bases_of5.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/bases_of5.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/bases_of5.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,128 ----
+ // PR c++/125208
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ namespace std {
+ template <class _E> struct initializer_list {
+   typedef _E *const_iterator;
+   _E *_M_array;
+   decltype (sizeof 0) _M_len;
+   constexpr long size() { return _M_len; }
+   constexpr const_iterator begin() { return _M_array; }
+   constexpr const_iterator end() { return begin() + size(); }
+ };
+ template <typename> struct allocator_traits;
+ } // namespace std
+ constexpr void *operator new(decltype (sizeof 0), void *__p) { return __p; }
+ namespace std {
+ template <typename _Tp, typename... _Args>
+ constexpr void _Construct(_Tp *__p, _Args... __args) {
+   new (__p) _Tp(__args...);
+ }
+ template <typename _Tp> struct __new_allocator {
+   constexpr _Tp *allocate(long __n) {
+     return static_cast<_Tp *>(__builtin_operator_new(__n * sizeof(_Tp)));
+   }
+   constexpr void deallocate(_Tp *__p, long) { __builtin_operator_delete(__p); }
+ };
+ template <typename _Tp> struct allocator_traits<__new_allocator<_Tp>> {
+   using allocator_type = __new_allocator<_Tp>;
+   using value_type = _Tp;
+   using pointer = _Tp *;
+   template <typename _Up> using rebind_alloc = __new_allocator<_Up>;
+   static constexpr pointer allocate(allocator_type __a, long __n) {
+     return __a.allocate(__n);
+   }
+   static constexpr void deallocate(allocator_type __a, pointer __p, long __n) {
+     __a.deallocate(__p, __n);
+   }
+ };
+ } // namespace std
+ template <typename _Alloc>
+ struct __alloc_traits : std::allocator_traits<_Alloc> {
+   typedef std::allocator_traits<_Alloc> _Base_type;
+   typedef _Base_type::value_type reference;
+   template <typename _Tp> struct rebind {
+     typedef _Base_type::template rebind_alloc<_Tp> other;
+   };
+ };
+ namespace std {
+ template <typename _InputIterator, typename _Sentinel,
+           typename _ForwardIterator>
+ constexpr void __do_uninit_copy(_InputIterator __first, _Sentinel __last,
+                                 _ForwardIterator __result) {
+   for (; __first != __last; ++__first, ++__result)
+     _Construct(__result, *__first);
+ }
+ template <typename _InputIterator, typename _ForwardIterator>
+ constexpr void uninitialized_copy(_InputIterator __first, _InputIterator __last,
+                                   _ForwardIterator __result) {
+   __do_uninit_copy(__first, __last, __result);
+ }
+ template <typename _InputIterator, typename _Sentinel,
+           typename _ForwardIterator, typename _Tp>
+ constexpr void __uninitialized_copy_a(_InputIterator __first, _Sentinel __last,
+                                       _ForwardIterator __result, _Tp) {
+   uninitialized_copy(__first, __last, __result);
+ }
+ template <typename _Tp, typename _Alloc> struct _Vector_base {
+   typedef __alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type;
+   typedef __alloc_traits<_Tp_alloc_type>::pointer pointer;
+   struct _Vector_impl : _Tp_alloc_type {
+     constexpr _Vector_impl(_Tp_alloc_type) {}
+     pointer _M_start;
+   };
+   constexpr ~_Vector_base() { _M_deallocate(_M_impl._M_start); }
+   _Vector_impl _M_impl;
+   constexpr pointer _M_allocate(long __n) {
+     return __n ? __alloc_traits<_Tp_alloc_type>::allocate(_M_impl, __n)
+                : pointer();
+   }
+   constexpr void _M_deallocate(pointer __p) {
+     __alloc_traits<_Tp_alloc_type>::deallocate(_M_impl, __p, 0);
+   }
+ };
+ template <typename _Tp, typename _Alloc = __new_allocator<_Tp>>
+ struct vector : _Vector_base<_Tp, _Alloc> {
+   typedef _Vector_base<_Tp, _Alloc> _Base;
+   typedef _Base::_Tp_alloc_type _Tp_alloc_type;
+   typedef _Alloc allocator_type;
+   constexpr vector(initializer_list<_Tp> __l,
+                    allocator_type __a = allocator_type())
+       : _Base(__a) {
+     long __trans_tmp_1 = __l.size();
+     _M_range_initialize_n(__l.begin(), __l.end(), __trans_tmp_1);
+   }
+   constexpr __alloc_traits<_Tp_alloc_type>::reference operator[](long __n) {
+     return *(this->_M_impl._M_start + __n);
+   }
+   template <typename _Iterator, typename _Sentinel>
+   constexpr void _M_range_initialize_n(_Iterator __first, _Sentinel __last,
+                                        long __n) {
+     typename _Base::pointer __start = this->_M_allocate(__n);
+     this->_M_impl._M_start = __start;
+     _Tp_alloc_type __trans_tmp_2;
+     __uninitialized_copy_a(__first, __last, __start, __trans_tmp_2);
+   }
+ };
+ namespace meta {
+ using info = decltype(^^int);
+ struct access_context {
+   info _M_scope;
+   info _M_designating_class;
+ };
+ consteval vector<info> bases_of(info, access_context);
+ } // namespace meta
+ } // namespace std
+ template <class L> using mp_is_value_list = L;
+ template <template <class> class, class...> long cx_count_if;
+ template <std::meta::info> struct rf_base_desc;
+ struct X1 {};
+ struct X2 {};
+ struct Z : X1, X2 {};
+ int main() {
+   constexpr auto all = std::meta::access_context();
+   using B1 = rf_base_desc<bases_of(^^Z, all)[0]>;
+   using B2 = rf_base_desc<bases_of(^^Z, all)[1]>;
+   (void) cx_count_if<mp_is_value_list, B1, B2>;
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/can_substitute2.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/can_substitute2.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/can_substitute2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/can_substitute2.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,19 ----
+ // [meta.reflection.substitute] Example 1
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ template<class T>
+ auto fn1();
+ 
+ static_assert(!can_substitute(^^fn1, {^^int}));
+ constexpr auto r1 = substitute(^^fn1, {^^int}); // { dg-error "can_substitute returned false" }
+ 
+ template<class T>
+ auto fn2() {
+   static_assert(false); // { dg-error "assert" }
+   return T{};
+ }
+ 
+ constexpr bool r2 = can_substitute(^^fn2, {^^int}); // { dg-message "required from here" }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/extract12.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/extract12.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/extract12.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/extract12.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/125111
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ using A = void ();
+ extern A &a;
+ constexpr auto b = ^^a;
+ constexpr auto c = std::meta::extract <A &> (b);	// { dg-error "uncaught exception of type 'std::meta::exception'; 'what\\\(\\\)': 'value cannot be extracted'" }
+ using B = int [];
+ extern B &d;
+ constexpr auto e = ^^d;
+ constexpr auto f = std::meta::extract <B &> (e);	// { dg-error "uncaught exception of type 'std::meta::exception'; 'what\\\(\\\)': 'value cannot be extracted'" }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/init19.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/init19.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/init19.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/init19.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/125280
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ struct C { decltype(^^::) i; };
+ struct N { int i; };
+ 
+ template<typename T>
+ struct X : T { };
+ 
+ auto a = X<C>{}; // { dg-error "outside a constant-evaluated context" }
+ auto b = X<N>{};
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/members_of14.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/members_of14.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/members_of14.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/members_of14.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,29 ----
+ // PR c++/124628
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ template<class T> void f();
+ 
+ template<class T>
+ struct A {
+   void g() noexcept(noexcept(T{}));
+   auto h() { return T{}; }
+   static inline auto m = T{};
+   // A& operator=(const A&) noexcept;
+   // A& operator=(A&&) noexcept;
+ };
+ 
+ int main() {
+   constexpr auto ac = std::meta::access_context::current();
+   template for (constexpr auto mem : define_static_array(members_of(^^A<int>, ac)))
+     if constexpr (!is_constructor(mem) && !is_destructor(mem))
+       f<typename [:type_of(mem):]>();
+ }
+ 
+ // { dg-final { scan-assembler _Z1fIDoFvvEEvv } } void f<void () noexcept>()
+ // { dg-final { scan-assembler _Z1fIFivEEvv } } void f<int ()>()
+ // { dg-final { scan-assembler _Z1fIiEvv } } void f<int>()
+ // { dg-final { scan-assembler _Z1fIDoFR1AIiERKS1_EEvv } } void f<A<int>& (A<int> const&) noexcept>()
+ // { dg-final { scan-assembler _Z1fIDoFR1AIiEOS1_EEvv } } void f<A<int>& (A<int>&&) noexcept>()
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/substitute3.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/substitute3.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/substitute3.C	Sat May  9 22:32:08 2026
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/substitute3.C	Sat May 16 22:32:07 2026
***************
*** 7,15 ****
  
  template<typename>
  auto
! f ()
! {
! }
  
  consteval bool
  g ()
--- 7,13 ----
  
  template<typename>
  auto
! f ();
  
  consteval bool
  g ()
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/type12.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/type12.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/type12.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/type12.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,28 ----
+ // PR c++/125280
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ template <class T, int N>
+ struct Array {
+   T mElements[N];
+ };
+ 
+ struct Element {
+   static const Array<Element, 9> mData;
+ };
+ const Array<Element, 9> Element::mData;
+ 
+ struct CE { decltype(^^::) i; };
+ 
+ struct A {
+   static const Array<CE, 10> mData;
+ };
+ const Array<CE, 10> A::mData{}; // { dg-error "outside a constant-evaluated context" }
+ 
+ struct B {
+   static constexpr Array<CE, 11> mData{};
+ };
+ 
+ struct C {
+   static const Array<CE, 12> mData;
+ };
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/type13.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/type13.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/type13.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/type13.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/125280
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ template <class T, int N>
+ struct Array {
+   T mElements[N]; // { dg-error "incomplete type" }
+ };
+ 
+ struct Element {
+   static const Array<Element, 10> mData{}; // { dg-error "initialization of static data member" }
+ };
+ const Array<Element, 10> Element::mData;
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/type_of3.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/type_of3.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/type_of3.C	Sat May  9 22:32:08 2026
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/type_of3.C	Sat May 16 22:32:07 2026
*************** struct S {
*** 10,13 ****
--- 10,19 ----
  };
  int h() { return 0; }
  
+ template<class T>
+ struct ST {
+     auto g() { return T{}; }
+ };
+ 
  static_assert(type_of(^^S::g) == type_of(^^h));
+ static_assert(type_of(^^ST<int>::g) == type_of(^^h));
diff -Nrcpad gcc-16-20260509/gcc/testsuite/g++.dg/reflect/using3.C gcc-16-20260516/gcc/testsuite/g++.dg/reflect/using3.C
*** gcc-16-20260509/gcc/testsuite/g++.dg/reflect/using3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/g++.dg/reflect/using3.C	Sat May 16 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/125184
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ void
+ foo ()
+ {
+   using std::meta::info;
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gcc.c-torture/execute/pr125291.c gcc-16-20260516/gcc/testsuite/gcc.c-torture/execute/pr125291.c
*** gcc-16-20260509/gcc/testsuite/gcc.c-torture/execute/pr125291.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gcc.c-torture/execute/pr125291.c	Sat May 16 22:32:08 2026
***************
*** 0 ****
--- 1,39 ----
+ /* PR tree-optimization/125291 */
+ 
+ char buf[1111];
+ char *archive_le16dec_filename = buf;
+ unsigned int archive_le16dec_end, archive_le16dec_fn_end,
+     archive_le16dec_filename_size, archive_le16dec_offset;
+ char archive_le16dec_p[] = { 21, 0x7f };
+ 
+ [[gnu::noipa]]
+ void
+ archive_le16dec ()
+ {
+   archive_le16dec_filename_size = (short)archive_le16dec_filename_size;
+   unsigned char flagbits = 0, flagbyte;
+   archive_le16dec_end = archive_le16dec_filename_size;
+   archive_le16dec_fn_end = archive_le16dec_filename_size * 2;
+   archive_le16dec_filename_size = flagbits = 0;
+   while (archive_le16dec_offset < archive_le16dec_end
+          && archive_le16dec_filename_size < archive_le16dec_fn_end)
+     {
+       if (!flagbits)
+         {
+           flagbyte = archive_le16dec_p[archive_le16dec_offset++];
+           flagbits = 8;
+         }
+       flagbits -= 2;
+       if (!(flagbyte >> flagbits & 3))
+         archive_le16dec_filename_size++;
+     }
+ }
+ 
+ int
+ main ()
+ {
+   archive_le16dec_filename_size = 2;
+   archive_le16dec ();
+   if (archive_le16dec_filename_size != 1)
+     __builtin_trap ();
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gcc.dg/tree-ssa/pr125259.c gcc-16-20260516/gcc/testsuite/gcc.dg/tree-ssa/pr125259.c
*** gcc-16-20260509/gcc/testsuite/gcc.dg/tree-ssa/pr125259.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gcc.dg/tree-ssa/pr125259.c	Sat May 16 22:32:09 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile { target bitint } } */
+ /* { dg-options "-O2 -fdump-tree-forwprop1" } */
+ 
+ typedef __attribute__((__vector_size__(4))) char V4;
+ typedef __attribute__((__vector_size__(8))) char V8;
+ 
+ _BitInt(17) foo(V8 *xx)
+ {
+ 	V8 x = *xx;
+ 	V4 v = *(V4 *)&x;
+ 	return *(_BitInt(17) *)&v;
+ }
+ 
+ /* { dg-final { scan-tree-dump "VIEW_CONVERT_EXPR" "forwprop1" } } */
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr120870-1.c gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr120870-1.c
*** gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr120870-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr120870-1.c	Sat May 16 22:32:10 2026
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do run } */
+ /* { dg-options "-O0 -march=x86-64-v3" } */
+ 
+ void
+ ext (long a, long b, long c, long d, long e, long f, long g)
+ {
+ }
+ 
+ void
+ tail (long a, long b)
+ {
+ }
+ 
+ __attribute__ ((preserve_none)) void
+ caller (long a, long b, long c, long d, long e, long f, long g)
+ {
+   __attribute__ ((aligned (32))) long x[4]; // for stack alignment
+   ext (a, b, c, d, e, f, g);
+   __attribute__ ((musttail)) return tail (a + b, b + c);
+ }
+ 
+ __attribute__ ((noipa))
+ static void
+ do_test ()
+ {
+   caller (1, 2, 3, 4, 5, 6, 7);
+ }
+ 
+ int
+ main (void)
+ {
+   if (__builtin_cpu_supports ("x86-64-v3"))
+     do_test ();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr120870-2.c gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr120870-2.c
*** gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr120870-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr120870-2.c	Sat May 16 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do run } */
+ /* { dg-options "-O0 -march=x86-64-v3" } */
+ 
+ #define preserve_none no_callee_saved_registers
+ 
+ #include "pr120870-1.c"
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr124316.c gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr124316.c
*** gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr124316.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr124316.c	Sat May 16 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-mptwrite" } */
+ #include <x86gprintrin.h>
+ 
+ unsigned long long ull;
+ unsigned u;
+ void foo()
+ {
+     _ptwrite64(ull);
+     _ptwrite32(u);
+ }
+ 
+ /* { dg-final { scan-assembler-times "ptwritel" 1 } } */
+ /* { dg-final { scan-assembler-times "ptwriteq" 1 } } */
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr125308.c gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr125308.c
*** gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr125308.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gcc.target/i386/pr125308.c	Sat May 16 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ /* PR target/125308 */
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2 -ffloat-store" } */
+ 
+ float a[4];
+ 
+ void
+ foo ()
+ {
+   for (int i = 0; i < 4; i++)
+     a[i] = a[i] > 0 ? a[i] : 0;
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gcc.target/loongarch/pr125049.c gcc-16-20260516/gcc/testsuite/gcc.target/loongarch/pr125049.c
*** gcc-16-20260509/gcc/testsuite/gcc.target/loongarch/pr125049.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gcc.target/loongarch/pr125049.c	Sat May 16 22:32:10 2026
***************
*** 0 ****
--- 1,50 ----
+ /* PR 125049: ensure stack canary and its address are not leaked.  */
+ /* { dg-options "-O2 -fstack-protector-strong -ffixed-r30 -ffixed-r31" } */
+ /* { dg-do run } */
+ /* { dg-require-effective-target fstack_protector } */
+ 
+ extern long __stack_chk_guard;
+ register long s7 asm ("s7"), *s8 asm ("s8");
+ 
+ [[gnu::zero_call_used_regs ("all"), gnu::noipa]] void
+ init_test (void)
+ {
+   s7 = __stack_chk_guard;
+   s8 = &__stack_chk_guard;
+ }
+ 
+ [[gnu::always_inline]] static inline void
+ check_reg (void)
+ {
+ #pragma GCC unroll 30
+   for (int i = 4; i < 30; i++)
+     asm goto (
+       "beq $r%0,$s7,%l[error]\n\t"
+       "beq $r%0,$s8,%l[error]\n\t"
+       :
+       : "i" (i)
+       :
+       : error
+     );
+   return;
+ error:
+   __builtin_trap ();
+ }
+ 
+ [[gnu::noipa]] void
+ test (void)
+ {
+   char buf[256];
+   asm ("":"+m"(buf));
+ 
+   check_reg ();
+ }
+ 
+ int
+ main (void)
+ {
+   init_test ();
+   test ();
+ 
+   check_reg ();
+ }
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gfortran.dg/bounds_check_29.f90 gcc-16-20260516/gcc/testsuite/gfortran.dg/bounds_check_29.f90
*** gcc-16-20260509/gcc/testsuite/gfortran.dg/bounds_check_29.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gfortran.dg/bounds_check_29.f90	Sat May 16 22:32:11 2026
***************
*** 0 ****
--- 1,62 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-fcheck=bounds" }
+ !
+ ! Check that if an array descriptor reference uses variables, they are
+ ! not used uninitialized by the bounds-checking code.
+ 
+ 
+ ! PR fortran/125192
+ ! Original example from Philippe Wautelet <philippe.wautelet at cnrs dot fr>
+ 
+ subroutine boundcheck_bug
+   implicit none
+ 
+   type isba_pe_t
+     real, pointer, dimension(:,:) :: xwg
+   end type isba_pe_t
+   type isba_npe_t
+     type(isba_pe_t), dimension(:), pointer :: al=>null()
+   end type isba_npe_t
+   type(isba_npe_t) :: npe
+ 
+   allocate(npe%al(10))
+   allocate(npe%al(1)%xwg(3,4))
+ 
+   call random_number( npe%al(1)%xwg(:,3) )
+ end subroutine boundcheck_bug
+ 
+ 
+ ! PR fortran/125198
+ ! Original example from Neil Carlson <neil.n.carlson at gmail dot com>
+ 
+ module unstr_mesh_type
+   type unstr_mesh
+     real, allocatable :: normal(:,:)
+   contains
+     procedure :: compute_geometry
+   end type
+ contains
+   subroutine compute_geometry(this)
+     class(unstr_mesh), intent(inout) :: this
+     character(64) :: buf
+     !print *, this%normal(1,1) ! THIS IS OKAY
+     write(buf,*) this%normal(1,1)
+     if (trim(buf) /= '   0.00000000') error stop 1
+     !print *, this%normal(:,1) ! SPURIOUS BOUNDS ERROR HERE
+     write(buf,*) this%normal(:,1)
+     if (trim(buf) /= '   0.00000000       0.00000000       0.00000000') error stop 2
+     !if (any(this%normal(:,1) /= 0.0)) error stop 2
+   end subroutine
+ end module
+ 
+ subroutine test_pr125198
+ use unstr_mesh_type
+ type(unstr_mesh) :: mesh
+ allocate(mesh%normal(3,10), source=0.0)
+ call mesh%compute_geometry
+ end subroutine
+ 
+ 
+ call boundcheck_bug
+ call test_pr125198
+ end
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gfortran.dg/dtio_37.f90 gcc-16-20260516/gcc/testsuite/gfortran.dg/dtio_37.f90
*** gcc-16-20260509/gcc/testsuite/gfortran.dg/dtio_37.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gfortran.dg/dtio_37.f90	Sat May 16 22:32:11 2026
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-O2" }
+ !
+ ! PR fortran/125059 - derived type IO and automatic deallocation
+ ! PR fortran/111952
+ 
+ module m
+   type t
+      integer :: i = 42
+    contains
+      procedure :: w
+      generic :: write(formatted) => w
+   end type t
+ contains
+   subroutine w(dtv,unit,iotype,v_list,iostat,iomsg)
+     class(t),        intent(in)    :: dtv
+     integer,         intent(in)    :: unit
+     character(len=*),intent(in)    :: iotype
+     integer,         intent(in)    :: v_list(:)
+     integer,         intent(out)   :: iostat
+     character(len=*),intent(inout) :: iomsg
+     write(unit,*,iostat=iostat,iomsg=iomsg) dtv%i
+   end subroutine w
+ end
+ 
+ program p
+   use m
+   call f()
+   call f()
+ contains
+   subroutine f()
+     type(t), allocatable :: a(:)
+     allocate (a(1))
+     print *, a(1)
+   end subroutine f
+ end
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gfortran.dg/namelist_102.f90 gcc-16-20260516/gcc/testsuite/gfortran.dg/namelist_102.f90
*** gcc-16-20260509/gcc/testsuite/gfortran.dg/namelist_102.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gfortran.dg/namelist_102.f90	Sat May 16 22:32:11 2026
***************
*** 0 ****
--- 1,248 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-O2" }
+ !
+ ! PR fortran/125095 - test namelist read with comments
+ !
+ ! Based on testcases by Andy Nelson and Steven G. Kargl
+ 
+ program nmlbug
+   implicit none
+   call test_int
+   call test_real
+   call test_complex
+   call test_logical
+   call test_char
+ 
+ contains
+ 
+   subroutine test_int
+ 
+     integer :: array(4), barray(4), carray(4), darray(4)
+ 
+     namelist/nml1/  array
+     namelist/nml2/ barray
+     namelist/nml3/ carray
+     namelist/nml4/ darray
+ 
+     open(10,status='scratch')
+     write(10,'(A)') '&nml1'
+     write(10,'(A)') '  array = 1, 2, 3, 4,'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml2'
+     write(10,'(A)') '  barray = 5,    ! comment'
+     write(10,'(A)') '           6,'
+     write(10,'(A)') '           7     ! another comment'
+     write(10,'(A)') '           8,'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml3'
+     write(10,'(A)') '  carray =  9     ! New comment'
+     write(10,'(A)') '           10'
+     write(10,'(A)') '           11     ! another new comment'
+     write(10,'(A)') '           12'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml4'
+     write(10,'(A)') '  darray = 13, 14, 15, 16,'
+     write(10,'(A)') '/'
+     flush(10)
+     rewind(10)
+ 
+     read(10,nml1)
+     if (any( array /= [ 1,  2,  3,  4])) stop 1
+     read(10,nml2)
+     if (any(barray /= [ 5,  6,  7,  8])) stop 2
+     read(10,nml3)
+     if (any(carray /= [ 9, 10, 11, 12])) stop 3
+     read(10,nml4)
+     if (any(darray /= [13, 14, 15, 16])) stop 4
+     close(10)
+ 
+   end subroutine test_int
+ 
+   subroutine test_real
+ 
+     real :: array(4), barray(4), carray(4), darray(4)
+ 
+     namelist/nml1/  array
+     namelist/nml2/ barray
+     namelist/nml3/ carray
+     namelist/nml4/ darray
+ 
+     open(10,status='scratch')
+     write(10,'(A)') '&nml1'
+     write(10,'(A)') '  array = 1, 2, 3, 4,'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml2'
+     write(10,'(A)') '  barray = 5,    ! comment'
+     write(10,'(A)') '           6,'
+     write(10,'(A)') '           7     ! another comment'
+     write(10,'(A)') '           8,'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml3'
+     write(10,'(A)') '  carray =  9     ! New comment'
+     write(10,'(A)') '           10'
+     write(10,'(A)') '           11     ! another new comment'
+     write(10,'(A)') '           12'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml4'
+     write(10,'(A)') '  darray = 13, 14, 15, 16,'
+     write(10,'(A)') '/'
+     flush(10)
+     rewind(10)
+ 
+     read(10,nml1)
+     if (any( array /= [ 1,  2,  3,  4])) stop 1
+     read(10,nml2)
+     if (any(barray /= [ 5,  6,  7,  8])) stop 2
+     read(10,nml3)
+     if (any(carray /= [ 9, 10, 11, 12])) stop 3
+     read(10,nml4)
+     if (any(darray /= [13, 14, 15, 16])) stop 4
+     close(10)
+ 
+   end subroutine test_real
+ 
+   subroutine test_complex
+ 
+     complex :: array(4), barray(4), carray(4), darray(4)
+ 
+     namelist/nml1/  array
+     namelist/nml2/ barray
+     namelist/nml3/ carray
+     namelist/nml4/ darray
+ 
+     open(10,status='scratch')
+     write(10,'(A)') '&nml1'
+     write(10,'(A)') '  array = (1,0), (2,0), (3,0), (4,0),'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml2'
+     write(10,'(A)') '  barray = (5,0),    ! comment'
+     write(10,'(A)') '           (6,0),'
+     write(10,'(A)') '           (7,0)     ! another comment'
+     write(10,'(A)') '           (8,0),'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml3'
+     write(10,'(A)') '  carray =  (9,0)     ! New comment'
+     write(10,'(A)') '           (10,0)'
+     write(10,'(A)') '           (11,0)     ! another new comment'
+     write(10,'(A)') '           (12,0)'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml4'
+     write(10,'(A)') '  darray = (13,0), (14,0), (15,0), (16,0),'
+     write(10,'(A)') '/'
+     flush(10)
+     rewind(10)
+ 
+     read(10,nml1)
+     if (any( array /= [ 1,  2,  3,  4])) stop 1
+     read(10,nml2)
+     if (any(barray /= [ 5,  6,  7,  8])) stop 2
+     read(10,nml3)
+     if (any(carray /= [ 9, 10, 11, 12])) stop 3
+     read(10,nml4)
+     if (any(darray /= [13, 14, 15, 16])) stop 4
+     close(10)
+ 
+   end subroutine test_complex
+ 
+   subroutine test_logical
+ 
+     logical :: array(4), barray(4), carray(4), darray(4)
+ 
+     namelist/nml1/  array
+     namelist/nml2/ barray
+     namelist/nml3/ carray
+     namelist/nml4/ darray
+ 
+     open(10,status='scratch')
+     write(10,'(A)') '&nml1'
+     write(10,'(A)') '  array = T,F,F,T'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml2'
+     write(10,'(A)') '  barray = T,    ! comment'
+     write(10,'(A)') '           F,'
+     write(10,'(A)') '           F     ! another comment'
+     write(10,'(A)') '           T,'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml3'
+     write(10,'(A)') '  carray =  T     ! New comment'
+     write(10,'(A)') '            F'
+     write(10,'(A)') '            F     ! another new comment'
+     write(10,'(A)') '            T'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml4'
+     write(10,'(A)') '  darray =  T,F,F,T'
+     write(10,'(A)') '/'
+     flush(10)
+     rewind(10)
+ 
+     read(10,nml1)
+     if (any( array .neqv. [ .true.,.false.,.false.,.true. ])) stop 1
+     read(10,nml2)
+     if (any(barray .neqv. [ .true.,.false.,.false.,.true. ])) stop 2
+     read(10,nml3)
+     if (any(carray .neqv. [ .true.,.false.,.false.,.true. ])) stop 3
+     read(10,nml4)
+     if (any(darray .neqv. [ .true.,.false.,.false.,.true. ])) stop 4
+     close(10)
+ 
+   end subroutine test_logical
+ 
+   subroutine test_char
+ 
+     character(8) :: array(4), barray(4), carray(4), darray(4)
+ 
+     namelist/nml1/  array
+     namelist/nml2/ barray
+     namelist/nml3/ carray
+     namelist/nml4/ darray
+ 
+     open(10,status='scratch')
+     write(10,'(A)') '&nml1'
+     write(10,'(A)') '  array = "a", "b", "c", "d",'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml2'
+     write(10,'(A)') '  barray = "a",    ! comment'
+     write(10,'(A)') '           "b",'
+     write(10,'(A)') '           "c"     ! another comment'
+     write(10,'(A)') '           "d",'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml3'
+     write(10,'(A)') '  carray = "a"     ! New comment'
+     write(10,'(A)') '           "b"'
+     write(10,'(A)') '           "c"     ! another new comment'
+     write(10,'(A)') '           "d"'
+     write(10,'(A)') '/'
+     write(10,*)
+     write(10,'(A)') '&nml4'
+     write(10,'(A)') '  darray = "a", "b", "c", "d",'
+     write(10,'(A)') '/'
+     flush(10)
+     rewind(10)
+ 
+     read(10,nml1)
+     if (any( array /= [ "a", "b", "c", "d" ])) stop 1
+     read(10,nml2)
+     if (any(barray /= [ "a", "b", "c", "d" ])) stop 2
+     read(10,nml3)
+     if (any(carray /= [ "a", "b", "c", "d" ])) stop 3
+     read(10,nml4)
+     if (any(darray /= [ "a", "b", "c", "d" ])) stop 4
+     close(10)
+ 
+   end subroutine test_char
+ 
+ end program nmlbug
diff -Nrcpad gcc-16-20260509/gcc/testsuite/gnat.dg/enum6.adb gcc-16-20260516/gcc/testsuite/gnat.dg/enum6.adb
*** gcc-16-20260509/gcc/testsuite/gnat.dg/enum6.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20260516/gcc/testsuite/gnat.dg/enum6.adb	Sat May 16 22:32:12 2026
***************
*** 0 ****
--- 1,43 ----
+ --  { dg-do run }
+ 
+ procedure Enum6 is
+ 
+   type Base_Enum is (Ten, Twenty);
+ 
+   type Derived_Enum is new Base_Enum;
+   for Derived_Enum use (Ten => 10, Twenty => 20);
+ 
+   type Rep_Enum is (Ten, Twenty);
+   for Rep_Enum use (Ten => 10, Twenty => 20);
+ 
+   OK : Boolean := True;
+ 
+ begin
+   for E in Base_Enum loop
+     if (E = Ten and then Base_Enum'Image(E) /= "TEN")
+       or else (E = Twenty and then Base_Enum'Image(E) /= "TWENTY")
+     then
+       OK := False;
+     end if;
+   end loop;
+ 
+   for E in Derived_Enum loop
+     if (E = Ten and then Derived_Enum'Image(E) /= "TEN")
+        or else (E = Twenty and then Derived_Enum'Image(E) /= "TWENTY")
+     then
+       OK := False;
+     end if;
+   end loop;
+ 
+   for E in Rep_Enum loop
+     if (E = Ten and then Rep_Enum'Image(E) /= "TEN")
+       or else (E = Twenty and then Rep_Enum'Image(E) /= "TWENTY")
+     then
+       OK := False;
+     end if;
+   end loop;
+ 
+   if not OK then
+     raise Program_Error;
+   end if;
+ end;
diff -Nrcpad gcc-16-20260509/gcc/testsuite/lib/lto.exp gcc-16-20260516/gcc/testsuite/lib/lto.exp
*** gcc-16-20260509/gcc/testsuite/lib/lto.exp	Sat May  9 22:32:12 2026
--- gcc-16-20260516/gcc/testsuite/lib/lto.exp	Sat May 16 22:32:12 2026
*************** proc lto-execute-1 { src1 sid } {
*** 711,719 ****
      set i 1
      set done 0
      while { !$done } {
! 	set names [glob -nocomplain -types f -- "${dir}/${base}_${i}.{c,C,ii,\[fF\]{,90,95,03,08},d,m,mm}"]
  	if { [llength ${names}] > 1 } {
! 	    warning "lto-execute: more than one file matched ${dir}/${base}_${i}.{c,C,ii,\[fF\]{,90,95,03,08},d,m,mm}"
  	}
  	if { [llength ${names}] == 1 } {
  	    lappend src_list [lindex ${names} 0]
--- 711,729 ----
      set i 1
      set done 0
      while { !$done } {
! 	set prefix "${dir}/${base}_${i}"
! 
! 	# glob returns a case insensitive list if filesystem is case
! 	# insensitive.  To have a case sensitive list, fetch the extended list
! 	# and then filter it to avoid duplicates.
! 	regsub -all {([.^$*+?()$${}|])} $prefix {\\\1} pattern
! 	set pattern [format {^%s.(c|C|ii|[fF](|90|95|03|08)|d|m|mm)$} $pattern]
! 	set names [lsearch -inline -all -regexp \
! 	  [glob -nocomplain -types f -- "${prefix}.*"] $pattern]
! 
  	if { [llength ${names}] > 1 } {
! 	    warning "lto-execute: more than one file matched $pattern"
! 	    verbose "matching files: $names"
  	}
  	if { [llength ${names}] == 1 } {
  	    lappend src_list [lindex ${names} 0]
diff -Nrcpad gcc-16-20260509/gcc/tree-scalar-evolution.cc gcc-16-20260516/gcc/tree-scalar-evolution.cc
*** gcc-16-20260509/gcc/tree-scalar-evolution.cc	Sat May  9 22:32:13 2026
--- gcc-16-20260516/gcc/tree-scalar-evolution.cc	Sat May 16 22:32:12 2026
*************** simplify_peeled_chrec (class loop *loop,
*** 1391,1400 ****
  	  && wi::to_widest (init_cond) == wi::to_widest (left_before)
  	  && !scev_probably_wraps_p (NULL_TREE, left_before, right, NULL,
  				     loop, false))
! 	return build_polynomial_chrec (loop->num, init_cond,
! 				       chrec_convert (TREE_TYPE (ev),
! 						      right, NULL,
! 						      false, NULL_TREE));
        return chrec_dont_know;
      }
  
--- 1391,1409 ----
  	  && wi::to_widest (init_cond) == wi::to_widest (left_before)
  	  && !scev_probably_wraps_p (NULL_TREE, left_before, right, NULL,
  				     loop, false))
! 	{
! 	  tree tp = TREE_TYPE (right);
! 
! 	  /* We need a sign-extension to make things like
! 	     u8(6, 4, 2) => i32(6, 4, 2), instead of i32(6, 260, 514).  */
! 	  if (TYPE_UNSIGNED (tp))
! 	    right = fold_convert (signed_type_for (tp), right);
! 
! 	  return build_polynomial_chrec (loop->num, init_cond,
! 					 chrec_convert (TREE_TYPE (ev),
! 							right, NULL,
! 							false, NULL_TREE));
! 	}
        return chrec_dont_know;
      }
  
diff -Nrcpad gcc-16-20260509/libgfortran/ChangeLog gcc-16-20260516/libgfortran/ChangeLog
*** gcc-16-20260509/libgfortran/ChangeLog	Sat May  9 22:32:13 2026
--- gcc-16-20260516/libgfortran/ChangeLog	Sat May 16 22:32:13 2026
***************
*** 1,3 ****
--- 1,15 ----
+ 2026-05-13  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-05-06  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR libfortran/125095
+ 	* io/list_read.c (read_logical): Eat comments in namelist read mode.
+ 	(read_integer): Likewise.
+ 	(read_character): Likewise.
+ 	(read_complex): Likewise.
+ 	(read_real): Likewise.
+ 
  2026-04-30  Release Manager
  
  	* GCC 16.1.0 released.
diff -Nrcpad gcc-16-20260509/libgfortran/io/list_read.c gcc-16-20260516/libgfortran/io/list_read.c
*** gcc-16-20260509/libgfortran/io/list_read.c	Sat May  9 22:32:13 2026
--- gcc-16-20260516/libgfortran/io/list_read.c	Sat May 16 22:32:13 2026
*************** read_logical (st_parameter_dt *dtp, int
*** 917,922 ****
--- 917,923 ----
    if (parse_repeat (dtp))
      return;
  
+ next:
    c = safe_tolower (next_char (dtp));
    l_push_char (dtp, c);
    switch (c)
*************** read_logical (st_parameter_dt *dtp, int
*** 961,966 ****
--- 962,970 ----
      case '!':
        if (!dtp->u.p.namelist_mode)
          goto bad_logical;
+       eat_line (dtp);
+       eat_spaces (dtp);
+       goto next;
  
      CASE_SEPARATORS:
      case EOF:
*************** read_integer (st_parameter_dt *dtp, int
*** 1076,1081 ****
--- 1080,1086 ----
    int c, negative;
    negative = 0;
  
+ next:
    c = next_char (dtp);
    switch (c)
      {
*************** read_integer (st_parameter_dt *dtp, int
*** 1091,1096 ****
--- 1096,1104 ----
      case '!':
        if (!dtp->u.p.namelist_mode)
          goto bad_integer;
+       eat_line (dtp);
+       eat_spaces (dtp);
+       goto next;
  
      CASE_SEPARATORS:		/* Single null.  */
        unget_char (dtp, c);
*************** read_character (st_parameter_dt *dtp, in
*** 1260,1265 ****
--- 1268,1274 ----
  
    quote = ' ';			/* Space means no quote character.  */
  
+ next:
    if ((c = next_char (dtp)) == EOF)
      goto eof;
    if (c == ';')
*************** read_character (st_parameter_dt *dtp, in
*** 1284,1289 ****
--- 1293,1307 ----
        quote = c;
        goto get_string;
  
+     case '!':
+       if (dtp->u.p.namelist_mode)
+ 	{
+ 	  eat_line (dtp);
+ 	  eat_spaces (dtp);
+ 	  goto next;
+ 	}
+       /* Fall through...  */
+ 
      default:
        if (dtp->u.p.namelist_mode)
  	{
*************** read_complex (st_parameter_dt *dtp, void
*** 1703,1708 ****
--- 1721,1727 ----
    if (parse_repeat (dtp))
      return;
  
+ next:
    c = next_char (dtp);
    switch (c)
      {
*************** read_complex (st_parameter_dt *dtp, void
*** 1712,1717 ****
--- 1731,1739 ----
      case '!':
        if (!dtp->u.p.namelist_mode)
  	goto bad_complex;
+       eat_line (dtp);
+       eat_spaces (dtp);
+       goto next;
  
      CASE_SEPARATORS:
      case EOF:
*************** read_real (st_parameter_dt *dtp, void *d
*** 1813,1818 ****
--- 1835,1841 ----
  
    seen_dp = 0;
  
+ next:
    c = next_char (dtp);
    if (dtp->u.p.current_unit->decimal_status == DECIMAL_COMMA)
      {
*************** read_real (st_parameter_dt *dtp, void *d
*** 1844,1849 ****
--- 1867,1875 ----
      case '!':
        if (!dtp->u.p.namelist_mode)
  	goto bad_real;
+       eat_line (dtp);
+       eat_spaces (dtp);
+       goto next;
  
      CASE_SEPARATORS:
        unget_char (dtp, c);		/* Single null.  */
diff -Nrcpad gcc-16-20260509/libstdc++-v3/acinclude.m4 gcc-16-20260516/libstdc++-v3/acinclude.m4
*** gcc-16-20260509/libstdc++-v3/acinclude.m4	Sat May  9 22:32:14 2026
--- gcc-16-20260516/libstdc++-v3/acinclude.m4	Sat May 16 22:32:14 2026
*************** AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS
*** 3755,3760 ****
--- 3755,3769 ----
      esac
    fi
  
+   # The $glibcxx_builddir/include/$target/bits/atomic_word.h header is created
+   # by include/Makefile so isn't available during configure. Copy it from the
+   # source dir to $PWD so that we don't include it using an absolute path,
+   # which does not work for win32 native builds (PR libstdc++/125312).
+   if ! $LN_S "${glibcxx_srcdir}/config/${atomic_word_dir}/atomic_word.h" ./
+   then
+     AC_MSG_ERROR([cannot create ./atomic_word.h])
+   fi
+ 
    if test "$atomic_builtins_link_tests" = yes; then
  
      # Do link tests.
*************** AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS
*** 3763,3769 ****
  
      AC_CACHE_CHECK([for atomic builtins for _Atomic_word],
  	glibcxx_cv_atomic_word,
! 	[AC_TRY_LINK([#include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"],
  		     [_Atomic_word a = 0, b;
  		      b = __atomic_fetch_add(&a, 1, __ATOMIC_ACQ_REL);],
  		     [glibcxx_cv_atomic_word=yes],
--- 3772,3778 ----
  
      AC_CACHE_CHECK([for atomic builtins for _Atomic_word],
  	glibcxx_cv_atomic_word,
! 	[AC_TRY_LINK([#include "atomic_word.h"],
  		     [_Atomic_word a = 0, b;
  		      b = __atomic_fetch_add(&a, 1, __ATOMIC_ACQ_REL);],
  		     [glibcxx_cv_atomic_word=yes],
*************** AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS
*** 3779,3785 ****
  
      cat > conftest.$ac_ext << EOF
  [#]line __oline__ "configure"
! [#]include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
  int main()
  {
    _Atomic_word a = 0, b;
--- 3788,3794 ----
  
      cat > conftest.$ac_ext << EOF
  [#]line __oline__ "configure"
! [#]include "atomic_word.h"
  int main()
  {
    _Atomic_word a = 0, b;
*************** EOF
*** 3799,3804 ****
--- 3808,3815 ----
      rm -f conftest*
    fi
  
+   rm -f ./atomic_word.h
+ 
    CXXFLAGS="$old_CXXFLAGS"
    AC_LANG_RESTORE
  
diff -Nrcpad gcc-16-20260509/libstdc++-v3/configure gcc-16-20260516/libstdc++-v3/configure
*** gcc-16-20260509/libstdc++-v3/configure	Sat May  9 22:32:14 2026
--- gcc-16-20260516/libstdc++-v3/configure	Sat May 16 22:32:14 2026
*************** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
*** 16422,16427 ****
--- 16422,16436 ----
      esac
    fi
  
+   # The $glibcxx_builddir/include/$target/bits/atomic_word.h header is created
+   # by include/Makefile so isn't available during configure. Copy it from the
+   # source dir to $PWD so that we don't include it using an absolute path,
+   # which does not work for win32 native builds (PR libstdc++/125312).
+   if ! $LN_S "${glibcxx_srcdir}/config/${atomic_word_dir}/atomic_word.h" ./
+   then
+     as_fn_error $? "cannot create ./atomic_word.h" "$LINENO" 5
+   fi
+ 
    if test "$atomic_builtins_link_tests" = yes; then
  
      # Do link tests.
*************** else
*** 16438,16444 ****
  fi
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
! #include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
  int
  main ()
  {
--- 16447,16453 ----
  fi
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
! #include "atomic_word.h"
  int
  main ()
  {
*************** $as_echo "$glibcxx_cv_atomic_word" >&6;
*** 16468,16475 ****
      # Fake what AC_TRY_COMPILE does.
  
      cat > conftest.$ac_ext << EOF
! #line 16471 "configure"
! #include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
  int main()
  {
    _Atomic_word a = 0, b;
--- 16477,16484 ----
      # Fake what AC_TRY_COMPILE does.
  
      cat > conftest.$ac_ext << EOF
! #line 16480 "configure"
! #include "atomic_word.h"
  int main()
  {
    _Atomic_word a = 0, b;
*************** $as_echo "$glibcxx_cv_atomic_word" >&6;
*** 16495,16500 ****
--- 16504,16511 ----
      rm -f conftest*
    fi
  
+   rm -f ./atomic_word.h
+ 
    CXXFLAGS="$old_CXXFLAGS"
    ac_ext=c
  ac_cpp='$CPP $CPPFLAGS'
*************** $as_echo "mutex" >&6; }
*** 16614,16620 ****
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 16617 "configure"
  int main()
  {
    _Decimal32 d1;
--- 16625,16631 ----
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 16628 "configure"
  int main()
  {
    _Decimal32 d1;
*************** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
*** 16656,16662 ****
    # unnecessary for this test.
  
    cat > conftest.$ac_ext << EOF
! #line 16659 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
--- 16667,16673 ----
    # unnecessary for this test.
  
    cat > conftest.$ac_ext << EOF
! #line 16670 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
*************** $as_echo "$glibcxx_cv_libbacktrace_atomi
*** 54145,54151 ****
      CXXFLAGS='-O0 -S'
  
      cat > conftest.$ac_ext << EOF
! #line 54148 "configure"
  #include <stddef.h>
  int main()
  {
--- 54156,54162 ----
      CXXFLAGS='-O0 -S'
  
      cat > conftest.$ac_ext << EOF
! #line 54159 "configure"
  #include <stddef.h>
  int main()
  {
diff -Nrcpad gcc-16-20260509/libstdc++-v3/include/bits/shared_ptr_atomic.h gcc-16-20260516/libstdc++-v3/include/bits/shared_ptr_atomic.h
*** gcc-16-20260509/libstdc++-v3/include/bits/shared_ptr_atomic.h	Sat May  9 22:32:14 2026
--- gcc-16-20260516/libstdc++-v3/include/bits/shared_ptr_atomic.h	Sat May 16 22:32:14 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 501,507 ****
  	{
  	  auto __old_ptr = __ptr;
  	  _GLIBCXX_TSAN_MUTEX_PRE_UNLOCK(&_M_val);
! 	  uintptr_t __old_pi 
  	    = _AtomicRef(&_M_val).fetch_sub(1, memory_order_relaxed) - 1u;
  	  _GLIBCXX_TSAN_MUTEX_POST_UNLOCK(&_M_val);
  
--- 501,507 ----
  	{
  	  auto __old_ptr = __ptr;
  	  _GLIBCXX_TSAN_MUTEX_PRE_UNLOCK(&_M_val);
! 	  uintptr_t __old_pi
  	    = _AtomicRef(&_M_val).fetch_sub(1, memory_order_relaxed) - 1u;
  	  _GLIBCXX_TSAN_MUTEX_POST_UNLOCK(&_M_val);
  
diff -Nrcpad gcc-16-20260509/libstdc++-v3/src/c++20/tzdata.zi gcc-16-20260516/libstdc++-v3/src/c++20/tzdata.zi
*** gcc-16-20260509/libstdc++-v3/src/c++20/tzdata.zi	Sat May  9 22:32:15 2026
--- gcc-16-20260516/libstdc++-v3/src/c++20/tzdata.zi	Sat May 16 22:32:14 2026
***************
*** 1,4 ****
! # version 2025c
  # This zic input file is in the public domain.
  R d 1916 o - Jun 14 23s 1 S
  R d 1916 1919 - O Su>=1 23s 0 -
--- 1,5 ----
! # version 2026a
! # redo posix_only
  # This zic input file is in the public domain.
  R d 1916 o - Jun 14 23s 1 S
  R d 1916 1919 - O Su>=1 23s 0 -
*************** R MT 1974 o - S 16 0s 0 -
*** 1304,1311 ****
  R MT 1975 1979 - Ap Su>=15 2 1 S
  R MT 1975 1980 - S Su>=15 2 0 -
  R MT 1980 o - Mar 31 2 1 S
! R MD 1997 ma - Mar lastSu 2 1 S
! R MD 1997 ma - O lastSu 3 0 -
  R O 1918 1919 - S 16 2s 0 -
  R O 1919 o - Ap 15 2s 1 S
  R O 1944 o - Ap 3 2s 1 S
--- 1305,1312 ----
  R MT 1975 1979 - Ap Su>=15 2 1 S
  R MT 1975 1980 - S Su>=15 2 0 -
  R MT 1980 o - Mar 31 2 1 S
! R MD 1997 2021 - Mar lastSu 2 1 S
! R MD 1997 2021 - O lastSu 3 0 -
  R O 1918 1919 - S 16 2s 0 -
  R O 1919 o - Ap 15 2s 1 S
  R O 1944 o - Ap 3 2s 1 S
*************** Z Europe/Chisinau 1:55:20 - LMT 1880
*** 3666,3672 ****
  3 R MSK/MSD 1990 May 6 2
  2 R EE%sT 1992
  2 e EE%sT 1997
! 2 MD EE%sT
  Z Europe/Dublin -0:25:21 - LMT 1880 Au 2
  -0:25:21 - DMT 1916 May 21 2s
  -0:25:21 1 IST 1916 O 1 2s
--- 3667,3674 ----
  3 R MSK/MSD 1990 May 6 2
  2 R EE%sT 1992
  2 e EE%sT 1997
! 2 MD EE%sT 2022
! 2 E EE%sT
  Z Europe/Dublin -0:25:21 - LMT 1880 Au 2
  -0:25:21 - DMT 1916 May 21 2s
  -0:25:21 1 IST 1916 O 1 2s
