diff -Nrcpad gcc-14-20260417/LAST_UPDATED gcc-14-20260423/LAST_UPDATED
*** gcc-14-20260417/LAST_UPDATED	Fri Apr 17 22:32:20 2026
--- gcc-14-20260423/LAST_UPDATED	Thu Apr 23 22:32:18 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision d59119c774ce73cc8634db12ff6f26c2e5056030
--- 1 ----
! Obtained from git: releases/gcc-14 revision fed7a84a1646514fcbd3d2c2274066973c7f0e7a
diff -Nrcpad gcc-14-20260417/MD5SUMS gcc-14-20260423/MD5SUMS
*** gcc-14-20260417/MD5SUMS	Fri Apr 17 22:32:25 2026
--- gcc-14-20260423/MD5SUMS	Thu Apr 23 22:32:22 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260417.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-14-20260423.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
*************** fc9280b02bc68e4fb1ef8d51ccc25061  Change
*** 23,29 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! ee2827c7650c644925f519f99ad2faf6  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 78e6a0b27f4ef8238ddb1f663acbc856  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
*************** bc7394806417778d77541ba1ec0e4a70  gcc/BA
*** 505,511 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 877ffbc60494c5bff2eb6fecab28a92f  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 505,511 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 3e7508bbb2c237071465ab8e67f184c0  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 541,547 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 87a332f5219b464afe553b93cafa5716  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 541,547 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 95e72ce799f8e12b2c2223b73bd89f1f  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** dce7dac7e905ada28c6563d930b531eb  gcc/fo
*** 5874,5880 ****
  b954a317257afa3149e46a5bce58d9c2  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 698c25018690163adc1c1cb974624477  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5874,5880 ----
  b954a317257afa3149e46a5bce58d9c2  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 78a5a5513fcd677baebcf864e7a2beab  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** f261bcac4b8cf37d6506afca3539d2ef  gcc/ip
*** 6285,6291 ****
  e40310b8dee85f5c92031ddd41ba5409  gcc/ipa-inline.h
  2850ab5bd1eea7c87c76164d1170dd17  gcc/ipa-modref-tree.cc
  903cac1b9a72c89d66ebdaace79c5bbf  gcc/ipa-modref-tree.h
! 6ce7058e415254e6835b7dd869835f96  gcc/ipa-modref.cc
  b04d793fd14925e2ee9fadff3fdb4778  gcc/ipa-modref.h
  4c04dbefd668da9c0f1cd206fbd6e755  gcc/ipa-param-manipulation.cc
  c0af2050309ae9c2d64886ab2cc82f36  gcc/ipa-param-manipulation.h
--- 6285,6291 ----
  e40310b8dee85f5c92031ddd41ba5409  gcc/ipa-inline.h
  2850ab5bd1eea7c87c76164d1170dd17  gcc/ipa-modref-tree.cc
  903cac1b9a72c89d66ebdaace79c5bbf  gcc/ipa-modref-tree.h
! 368637ab8d1b7d99fea4dc5822d81a68  gcc/ipa-modref.cc
  b04d793fd14925e2ee9fadff3fdb4778  gcc/ipa-modref.h
  4c04dbefd668da9c0f1cd206fbd6e755  gcc/ipa-param-manipulation.cc
  c0af2050309ae9c2d64886ab2cc82f36  gcc/ipa-param-manipulation.h
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8062,8068 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! defdae5d5cdd7d2f36a0f48845d585da  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 8062,8068 ----
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! b077bf9016f550aecc4966fb10f7f87b  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** f052d3af1586cf42bf5ec8d92e1621ac  gcc/te
*** 29639,29647 ****
--- 29639,29649 ----
  f298eddbaaad3dfdc15f6cf9683ff08a  gcc/testsuite/g++.dg/torture/pr11911.C
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
+ 0d979e637ca747e39d8182a541458797  gcc/testsuite/g++.dg/torture/pr120987-1.C
  75b55c517ba9c0f47c83851f084cb294  gcc/testsuite/g++.dg/torture/pr121870.C
  fd8e483532e07909315ca8711ef4503b  gcc/testsuite/g++.dg/torture/pr123603.C
  ca7ea9ef86090651fbec9289f32896ab  gcc/testsuite/g++.dg/torture/pr123729.C
+ 947406bbc75c3117568a96cd4a4cc34b  gcc/testsuite/g++.dg/torture/pr124130.C
  61fcf1bc001bfcf25117da95aaa8edd8  gcc/testsuite/g++.dg/torture/pr124135-1.C
  101facde39ac59f9b142786ef251d0ca  gcc/testsuite/g++.dg/torture/pr124135-2.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
*************** e23df6b1422011499b9a500d2bf25add  gcc/te
*** 50604,50615 ****
--- 50606,50621 ----
  d41266e6594db1994e416e7a7353751e  gcc/testsuite/gcc.dg/torture/pr121370.c
  949a4a95ad545289488a204b883b05d6  gcc/testsuite/gcc.dg/torture/pr121844.c
  d4560440fd7b3647f8780537a59e4716  gcc/testsuite/gcc.dg/torture/pr122188.c
+ 3142210a35bdb6d31b5c4bb65cf8e9e4  gcc/testsuite/gcc.dg/torture/pr123061.c
  555e199e2c16f6c135742459dd2921b3  gcc/testsuite/gcc.dg/torture/pr123175-1.c
  a57694d59f86b331962949b865331a14  gcc/testsuite/gcc.dg/torture/pr123175-2.c
+ 0cd9b5f403d655ca4804a15fc23543fd  gcc/testsuite/gcc.dg/torture/pr123416.c
+ 7d1a217129f5166f7cde3b004649bea9  gcc/testsuite/gcc.dg/torture/pr123636.c
  ea90221ab80b5c3561ffc7665d2a343a  gcc/testsuite/gcc.dg/torture/pr123645-1.c
  c6c07c813f67e0f94f1352f2810dfcff  gcc/testsuite/gcc.dg/torture/pr123645-2.c
  50838f4736657229a26dc1b011faf8d3  gcc/testsuite/gcc.dg/torture/pr123864.c
  406979b51eba3578f721938e7d4189da  gcc/testsuite/gcc.dg/torture/pr123887.c
+ d4f9bc1a728b13f9940b71ab03cc40fd  gcc/testsuite/gcc.dg/torture/pr124132.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** bc1b0eb9d58483a9f609b164efd64d18  gcc/te
*** 53867,53872 ****
--- 53873,53879 ----
  6a109e21502e5353e985b8e9180f3c79  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-23.c
  99cacb357948a00b34aa1d255c66558b  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c
  a3fc09fc73db236301044a5b2f7e7fea  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-25.c
+ 982d2d128f70750a32db6150ef8991ef  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c
  c0ab69fe1a4b916817bbafe5e5048c34  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
  d00d2a078458d4fc876af7d2a29c241a  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-5.c
  769aa5eb478537be389d55c410c46887  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c
*************** e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/te
*** 56402,56407 ****
--- 56409,56415 ----
  e7cd5788f09670057ebf36ffc7961d4b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
  94bda84899e2683692deba382167aa8e  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  f4b106f1a647b041f524318378f476f5  gcc/testsuite/gcc.dg/vect/vect-pr122793.c
+ da160a8349fe2e0daa932c3bd967f635  gcc/testsuite/gcc.dg/vect/vect-pr124677.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
  bcf8d4d938304b75cfe5af73ef6b191b  gcc/testsuite/gcc.dg/vect/vect-profile-1.c
*************** c2c9b1a1db79eedb25331d3565231b66  gcc/te
*** 97014,97019 ****
--- 97022,97028 ----
  6db6e7072dccd0be789b6dc9bd2a586c  gcc/testsuite/gfortran.dg/gomp/pr93555.f90
  a921eeb5697bd066712d41d66d374930  gcc/testsuite/gfortran.dg/gomp/pr94672.f90
  8a04653b9aa2543e13a3136934e00444  gcc/testsuite/gfortran.dg/gomp/pr95869.f90
+ 8512ba21f2d6bfcb3e878c6c91c4dc17  gcc/testsuite/gfortran.dg/gomp/pr98203.f90
  f832e5b53ac5754d0490d912e4da9ec6  gcc/testsuite/gfortran.dg/gomp/pr99226.f90
  bcd0369b2e799c3808032efd4c583295  gcc/testsuite/gfortran.dg/gomp/pr99928-1.f90
  5a122e0df6f86c9b8f25e3ef0a8de595  gcc/testsuite/gfortran.dg/gomp/pr99928-11.f90
*************** d090daa844578953fae325419d401322  gcc/tr
*** 110606,110612 ****
  de9026b3ddfb63f45eb7de90c07c152a  gcc/tree-hasher.h
  b53b0e038a499606b2d119c62b6fc3c8  gcc/tree-if-conv.cc
  5d6eb83f64960ba3d0dc2c1253389f3b  gcc/tree-if-conv.h
! 93acaa36c86aae712fac8519275bc59c  gcc/tree-inline.cc
  93e3a89424169fea13caf4b3f341effe  gcc/tree-inline.h
  14fbc08d8db9b07d391efa6716aea4d8  gcc/tree-into-ssa.cc
  75ead7abe52cb77f14845ac9c55bbc29  gcc/tree-into-ssa.h
--- 110615,110621 ----
  de9026b3ddfb63f45eb7de90c07c152a  gcc/tree-hasher.h
  b53b0e038a499606b2d119c62b6fc3c8  gcc/tree-if-conv.cc
  5d6eb83f64960ba3d0dc2c1253389f3b  gcc/tree-if-conv.h
! b23de6b97304d88f5eaae5313b2467f7  gcc/tree-inline.cc
  93e3a89424169fea13caf4b3f341effe  gcc/tree-inline.h
  14fbc08d8db9b07d391efa6716aea4d8  gcc/tree-into-ssa.cc
  75ead7abe52cb77f14845ac9c55bbc29  gcc/tree-into-ssa.h
*************** eb50801cc8f65531f98214d98abdf0f7  gcc/tr
*** 110656,110662 ****
  c3b1a9515666618e9d55c8fd53f67e36  gcc/tree-ssa-live.cc
  bc4d2e809f144d9e2d71f49c6ac1005c  gcc/tree-ssa-live.h
  62caed8ee6b65f064d889ab923fa4b37  gcc/tree-ssa-loop-ch.cc
! d45ee5ac066d79f81f80cb45b2ec54cc  gcc/tree-ssa-loop-im.cc
  d13427e991e77725e732629fb007437a  gcc/tree-ssa-loop-ivcanon.cc
  92cb1dbf4e717a357529b226854a825d  gcc/tree-ssa-loop-ivopts.cc
  66d2704d1626bcfc35f8aa458ee6a1a1  gcc/tree-ssa-loop-ivopts.h
--- 110665,110671 ----
  c3b1a9515666618e9d55c8fd53f67e36  gcc/tree-ssa-live.cc
  bc4d2e809f144d9e2d71f49c6ac1005c  gcc/tree-ssa-live.h
  62caed8ee6b65f064d889ab923fa4b37  gcc/tree-ssa-loop-ch.cc
! 2f831dac51398f2a06c06990f0d6ef53  gcc/tree-ssa-loop-im.cc
  d13427e991e77725e732629fb007437a  gcc/tree-ssa-loop-ivcanon.cc
  92cb1dbf4e717a357529b226854a825d  gcc/tree-ssa-loop-ivopts.cc
  66d2704d1626bcfc35f8aa458ee6a1a1  gcc/tree-ssa-loop-ivopts.h
*************** d13427e991e77725e732629fb007437a  gcc/tr
*** 110665,110671 ****
  cdc0524cbed8b79b9fa33724590ce9c1  gcc/tree-ssa-loop-niter.cc
  ec5f7abc3695bde1fbe2a8b2a7e53167  gcc/tree-ssa-loop-niter.h
  1227f24f2f18334f57649a99ceeda666  gcc/tree-ssa-loop-prefetch.cc
! acc4aff264e3f0e53b0b258a37163e6d  gcc/tree-ssa-loop-split.cc
  bee79c7c759cbbdc165ca0c368472bf4  gcc/tree-ssa-loop-unswitch.cc
  55ae2e77440663854644a5c55e444332  gcc/tree-ssa-loop.cc
  ee1eafa40cd3c1d5777881a232cc123a  gcc/tree-ssa-loop.h
--- 110674,110680 ----
  cdc0524cbed8b79b9fa33724590ce9c1  gcc/tree-ssa-loop-niter.cc
  ec5f7abc3695bde1fbe2a8b2a7e53167  gcc/tree-ssa-loop-niter.h
  1227f24f2f18334f57649a99ceeda666  gcc/tree-ssa-loop-prefetch.cc
! e9f452126b26b0f6c9e13fe86093c977  gcc/tree-ssa-loop-split.cc
  bee79c7c759cbbdc165ca0c368472bf4  gcc/tree-ssa-loop-unswitch.cc
  55ae2e77440663854644a5c55e444332  gcc/tree-ssa-loop.cc
  ee1eafa40cd3c1d5777881a232cc123a  gcc/tree-ssa-loop.h
*************** e52dd1666766e097473010a395e05b72  gcc/tr
*** 110714,110720 ****
  7c2d603160e6cc66d6f331c03cbd63e4  gcc/tree-vect-data-refs.cc
  d118b2d044875c26f314d37ff24df105  gcc/tree-vect-generic.cc
  a5c65c0281a1b6faf6652682936ae74e  gcc/tree-vect-loop-manip.cc
! 5ab16abcaa74517dbcd6d173698c07d2  gcc/tree-vect-loop.cc
  43f6f3fee20eb715fd451bf19e9bfd4c  gcc/tree-vect-patterns.cc
  28617cab8a239cf14b40a71d5bbc169c  gcc/tree-vect-slp-patterns.cc
  ae55d259a8015d98d10ea9b66379ac0c  gcc/tree-vect-slp.cc
--- 110723,110729 ----
  7c2d603160e6cc66d6f331c03cbd63e4  gcc/tree-vect-data-refs.cc
  d118b2d044875c26f314d37ff24df105  gcc/tree-vect-generic.cc
  a5c65c0281a1b6faf6652682936ae74e  gcc/tree-vect-loop-manip.cc
! 5dde40010c41d8f666c71ace1ae0edcf  gcc/tree-vect-loop.cc
  43f6f3fee20eb715fd451bf19e9bfd4c  gcc/tree-vect-patterns.cc
  28617cab8a239cf14b40a71d5bbc169c  gcc/tree-vect-slp-patterns.cc
  ae55d259a8015d98d10ea9b66379ac0c  gcc/tree-vect-slp.cc
*************** d828e38384c506bf5e7d5a3c02725a37  libssp
*** 123965,123971 ****
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! 5609dd2610cf29f4b3880ae2e7d1ff21  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 123974,123980 ----
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! d4d0d50924774aa0176baadcbad82e73  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** b051e1657f96388a3e7d5d0d670145e5  libstd
*** 124794,124801 ****
  d2c6eb67d615d7d096f492b22eea4b6f  libstdc++-v3/include/bits/valarray_array.tcc
  296f16b1a6f6cf57ecd784ec331fc19e  libstdc++-v3/include/bits/valarray_before.h
  02d959bb068e1a0eb79cc9802e39be3a  libstdc++-v3/include/bits/vector.tcc
! 432f9805e57f028de277d620c0bd955c  libstdc++-v3/include/bits/version.def
! 79dffe9ba62dab2f07ab10564feb1c43  libstdc++-v3/include/bits/version.h
  f6488e249fd41122a0aa656a7b88f669  libstdc++-v3/include/bits/version.tpl
  23670bf0ed7006b56169654e79313316  libstdc++-v3/include/c/cassert
  54f4af5417eacea0760d6a9554d593bc  libstdc++-v3/include/c/cctype
--- 124803,124810 ----
  d2c6eb67d615d7d096f492b22eea4b6f  libstdc++-v3/include/bits/valarray_array.tcc
  296f16b1a6f6cf57ecd784ec331fc19e  libstdc++-v3/include/bits/valarray_before.h
  02d959bb068e1a0eb79cc9802e39be3a  libstdc++-v3/include/bits/vector.tcc
! 9109cb1f409b48f58c30ccbacbe28d36  libstdc++-v3/include/bits/version.def
! 05c691b01b8d0ea8722d10398e1f99e9  libstdc++-v3/include/bits/version.h
  f6488e249fd41122a0aa656a7b88f669  libstdc++-v3/include/bits/version.tpl
  23670bf0ed7006b56169654e79313316  libstdc++-v3/include/c/cassert
  54f4af5417eacea0760d6a9554d593bc  libstdc++-v3/include/c/cctype
*************** abd11dd3947209f696f94d932cc332bd  libstd
*** 124831,124839 ****
  072501af1fb92f6c61d905a889e23d55  libstdc++-v3/include/c_compatibility/signal.h
  3ae16230a91e5f8f915c4572dd2de92d  libstdc++-v3/include/c_compatibility/stdarg.h
  a4ef565ae0e9463b4f7a9188f263b140  libstdc++-v3/include/c_compatibility/stdatomic.h
! c59b5e0eca126fcdb5d60553d7306e06  libstdc++-v3/include/c_compatibility/stdbit.h
  b7d1a1feade359b17536b80612f1a5ad  libstdc++-v3/include/c_compatibility/stdbool.h
! fca90211dcbb917c2de0be1f5c2aafb9  libstdc++-v3/include/c_compatibility/stdckdint.h
  4779b1da6436870feccffd045fb554ce  libstdc++-v3/include/c_compatibility/stddef.h
  7242a83084ab38257ea91cd3ff50b5af  libstdc++-v3/include/c_compatibility/stdint.h
  427dd11a3c37411d439ac8c467768e3c  libstdc++-v3/include/c_compatibility/stdio.h
--- 124840,124848 ----
  072501af1fb92f6c61d905a889e23d55  libstdc++-v3/include/c_compatibility/signal.h
  3ae16230a91e5f8f915c4572dd2de92d  libstdc++-v3/include/c_compatibility/stdarg.h
  a4ef565ae0e9463b4f7a9188f263b140  libstdc++-v3/include/c_compatibility/stdatomic.h
! c2f557a28c1227cff940c6918cba6832  libstdc++-v3/include/c_compatibility/stdbit.h
  b7d1a1feade359b17536b80612f1a5ad  libstdc++-v3/include/c_compatibility/stdbool.h
! 20542d5b060306ef86fcc79ec742c748  libstdc++-v3/include/c_compatibility/stdckdint.h
  4779b1da6436870feccffd045fb554ce  libstdc++-v3/include/c_compatibility/stddef.h
  7242a83084ab38257ea91cd3ff50b5af  libstdc++-v3/include/c_compatibility/stdint.h
  427dd11a3c37411d439ac8c467768e3c  libstdc++-v3/include/c_compatibility/stdio.h
diff -Nrcpad gcc-14-20260417/gcc/ChangeLog gcc-14-20260423/gcc/ChangeLog
*** gcc-14-20260417/gcc/ChangeLog	Fri Apr 17 22:32:05 2026
--- gcc-14-20260423/gcc/ChangeLog	Thu Apr 23 22:32:05 2026
***************
*** 1,3 ****
--- 1,71 ----
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124627
+ 	* tree-inline.cc (copy_debug_stmts): Only copy debug
+ 	stmts that are still in the IL.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124130
+ 	* tree-inline.cc (copy_edges_for_bb): Fixup noreturn calls
+ 	with abnormal edge source.
+ 
+ 2026-04-22  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-03-10  Jan Hubicka  <jh@suse.cz>
+ 		    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/120987
+ 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Mask
+ 	off non const/pure/novops related flags when combining of outer
+ 	functions.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/123416
+ 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining):
+ 	Fix typo in condtion for load merging when no callee summary.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123061
+ 	PR tree-optimization/123636
+ 	* tree-ssa-loop-im.cc (fill_always_executed_in_1): Change
+ 	outer-to-inner to inner-to-outer iteration.  Update inner
+ 	loop state only when always executed in an immediately
+ 	nested loop.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124677
+ 	* tree-vect-loop.cc (vectorizable_recurr): Skip vector
+ 	stmts for the def.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124132
+ 	* tree-ssa-loop-split.cc (compute_new_first_bound): Fix
+ 	bound difference computation.
+ 
  2026-04-13  Richard Earnshaw  <rearnsha@arm.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260417/gcc/DATESTAMP gcc-14-20260423/gcc/DATESTAMP
*** gcc-14-20260417/gcc/DATESTAMP	Fri Apr 17 22:32:05 2026
--- gcc-14-20260423/gcc/DATESTAMP	Thu Apr 23 22:32:05 2026
***************
*** 1 ****
! 20260417
--- 1 ----
! 20260423
diff -Nrcpad gcc-14-20260417/gcc/fortran/ChangeLog gcc-14-20260423/gcc/fortran/ChangeLog
*** gcc-14-20260417/gcc/fortran/ChangeLog	Fri Apr 17 22:32:07 2026
--- gcc-14-20260423/gcc/fortran/ChangeLog	Thu Apr 23 22:32:07 2026
***************
*** 1,3 ****
--- 1,83 ----
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-02-07  Tomáš Trnka  <trnka@scm.com>
+ 
+ 	PR fortran/116829
+ 	* trans-decl.cc (init_intent_out_dt): Always call
+ 	gfc_init_default_dt() for BT_DERIVED to apply s->value if the
+ 	symbol isn't allocatable. Also simplify the logic a bit.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-04-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/100155
+ 	* trans-expr.cc (gfc_add_interface_mapping): 'new_sym' dummy
+ 	attribute set to zero.
+ 	(gfc_conv_procedure_call): Deallocate allocatable components of
+ 	a class argument, enclosed in parentheses,wrap up the parmse
+ 	and proceed to the next argument.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/102619
+ 	* trans-expr.cc (gfc_get_interface_mapping_array): Add argument
+ 	'assumed_rank_formal', which if true returns the descriptor in
+ 	'ifm'.
+ 	(gfc_add_interface_mapping): Detect an assumed rank formal arg
+ 	of a non-intrinsic function to set 'assumed_rank_formal' and
+ 	pass the descriptor to gfc_get_interface_mapping_array.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2024-07-21  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/59104
+ 	* gfortran.h : Add decl_order to gfc_symbol.
+ 	* symbol.cc : Add static next_decl_order..
+ 	(gfc_set_sym_referenced): Set symbol decl_order.
+ 	* trans-decl.cc : Include dependency.h.
+ 	(decl_order): Replace symbol declared_at.lb->location with
+ 	decl_order.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2024-06-20  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/59104
+ 	* dependency.cc (dependency_fcn, gfc_function_dependency): New
+ 	functions to detect dependency in array bounds and character
+ 	lengths on old style function results.
+ 	* dependency.h : Add prototype for gfc_function_dependency.
+ 	* error.cc (error_print): Remove trailing space.
+ 	* gfortran.h : Remove dummy_order and add fn_result_spec.
+ 	* symbol.cc : Remove declaration of next_dummy_order..
+ 	(gfc_set_sym_referenced): remove setting of symbol dummy order.
+ 	* trans-array.cc (gfc_trans_auto_array_allocation): Detect
+ 	non-dummy symbols with function dependencies and put the
+ 	allocation at the end of the initialization code.
+ 	* trans-decl.cc : Include dependency.h.
+ 	(decl_order): New function that determines uses the location
+ 	field of the symbol 'declared_at' to determine the order of two
+ 	declarations.
+ 	(gfc_defer_symbol_init): Call gfc_function_dependency to put
+ 	dependent symbols in the right part of the tlink chain. Use
+ 	the location field of the symbol declared_at to determine the
+ 	order of declarations.
+ 	(gfc_trans_auto_character_variable): Put character length
+ 	initialization of dependent symbols at the end of the chain.
+ 	* trans.cc (gfc_add_init_cleanup): Add boolean argument with
+ 	default false that determines whther an expression is placed at
+ 	the back or the front of the initialization chain.
+ 	* trans.h : Update the prototype for gfc_add_init_cleanup.
+ 
  2026-04-14  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260417/gcc/ipa-modref.cc gcc-14-20260423/gcc/ipa-modref.cc
*** gcc-14-20260417/gcc/ipa-modref.cc	Fri Apr 17 22:32:07 2026
--- gcc-14-20260423/gcc/ipa-modref.cc	Thu Apr 23 22:32:07 2026
*************** ipa_merge_modref_summary_after_inlining
*** 5327,5343 ****
  				      : NULL;
    class modref_summary_lto *callee_info_lto
  		 = summaries_lto ? summaries_lto->get (edge->callee) : NULL;
    int flags = flags_from_decl_or_type (edge->callee->decl);
!   /* Combine in outer flags.  */
!   cgraph_node *n;
!   for (n = edge->caller; n->inlined_to; n = n->callers->caller)
!     flags |= flags_from_decl_or_type (n->decl);
!   flags |= flags_from_decl_or_type (n->decl);
!   bool ignore_stores = ignore_stores_p (edge->caller->decl, flags);
  
    if (!callee_info && to_info)
      {
!       if (!(flags & (ECF_CONST | ECF_PURE | ECF_NOVOPS)))
  	to_info->loads->collapse ();
        if (!ignore_stores)
  	to_info->stores->collapse ();
--- 5327,5376 ----
  				      : NULL;
    class modref_summary_lto *callee_info_lto
  		 = summaries_lto ? summaries_lto->get (edge->callee) : NULL;
+ 
+   /* Compute effective ECF_CONST, ECF_PURE, ECF_NOVOPS,
+      ECF_LOOPING_CONST_OR_PURE and ignore_stores of the inlined function from
+      the point of view of caller of the function it is transitively inlined to.
+ 
+      Consider inline chain A->B->C, where (edge is the edge B->C).
+      ECF_CONST, ECF_PURE_ECF, ECF_NOVOPS and ignore_stores is the strongest
+      flag seen on the inline path.
+ 
+      ECF_LOOPING_CONST_OR_PURE is bit special since, for example if C
+      is ECF_CONST | ECF_LOOPING_CONST_OR_PURE and B is ECF_PURE, then outcome
+      is ECF_CONST and !ECF_LOOPING_CONST_OR_PURE.
+ 
+      Flags are later used to avoid merging info about side-effects of C which
+      are invisible to to the caller of A.  For example, it is possible for
+      const function to have local array and call non-const functions modifying
+      it.  */
+ 
    int flags = flags_from_decl_or_type (edge->callee->decl);
!   bool ignore_stores = ignore_stores_p (edge->callee->decl, flags);
! 
!   for (cgraph_node *n = edge->caller; n;
!        n = n->inlined_to ? n->callers->caller : NULL)
!     {
!       int f = flags_from_decl_or_type (n->decl);
! 
!       ignore_stores |= ignore_stores_p (n->decl, f);
!       /* If we see first CONST/PURE flag in the chain, take its
! 	 ECF_LOOPING_CONST_OR_PURE  */
!       if (!(flags & (ECF_CONST | ECF_PURE)) && (f & (ECF_CONST | ECF_PURE)))
! 	flags |= (f & ECF_LOOPING_CONST_OR_PURE);
!       /* If we already have ECF_CONST or ECF_PURE flag
! 	 just improve ECF_LOOPING_CONST_OR_PURE if possible.  */
!       else if ((flags & (ECF_CONST | ECF_PURE))
! 	       && (flags & ECF_LOOPING_CONST_OR_PURE)
! 	       && (f & (ECF_CONST | ECF_PURE))
! 	       && !(f & ECF_LOOPING_CONST_OR_PURE))
! 	flags &= ECF_LOOPING_CONST_OR_PURE;
!       flags |= f & (ECF_CONST | ECF_PURE | ECF_NOVOPS);
!     }
  
    if (!callee_info && to_info)
      {
!       if (!(flags & (ECF_CONST | ECF_NOVOPS)))
  	to_info->loads->collapse ();
        if (!ignore_stores)
  	to_info->stores->collapse ();
diff -Nrcpad gcc-14-20260417/gcc/testsuite/ChangeLog gcc-14-20260423/gcc/testsuite/ChangeLog
*** gcc-14-20260417/gcc/testsuite/ChangeLog	Fri Apr 17 22:32:08 2026
--- gcc-14-20260423/gcc/testsuite/ChangeLog	Thu Apr 23 22:32:07 2026
***************
*** 1,3 ****
--- 1,104 ----
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124130
+ 	* g++.dg/torture/pr124130.C: New testcase.
+ 
+ 2026-04-22  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-03-10  Jan Hubicka  <jh@suse.cz>
+ 		    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/120987
+ 	* g++.dg/torture/pr120987-1.C: New test.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/123416
+ 	* gcc.dg/torture/pr123416.c: New testcase.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123061
+ 	PR tree-optimization/123636
+ 	* gcc.dg/torture/pr123061.c: New testcase.
+ 	* gcc.dg/torture/pr123636.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-lim-26.c: Likewise.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124677
+ 	* gcc.dg/vect/vect-pr124677.c: New testcase.
+ 
+ 2026-04-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124132
+ 	* gcc.dg/torture/pr124132.c: New testcase.
+ 
+ 2026-04-21  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-03  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/98203
+ 	PR fortran/98203
+ 	* gfortran.dg/gomp/pr98203.f90: New test.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-02-07  Tomáš Trnka  <trnka@scm.com>
+ 
+ 	PR fortran/116829
+ 	* gfortran.dg/derived_init_7.f90: New test.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-04-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/100155
+ 	* gfortran.dg/pr100155.f90: New test.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/102619
+ 	* gfortran.dg/pr102619.f90: New test.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2024-07-21  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/59104
+ 	* gfortran.dg/dependent_decls_3.f90: New test.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2024-06-20  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/59104
+ 	* gfortran.dg/dependent_decls_2.f90: New test.
+ 
  2026-04-14  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260417/gcc/testsuite/g++.dg/torture/pr120987-1.C gcc-14-20260423/gcc/testsuite/g++.dg/torture/pr120987-1.C
*** gcc-14-20260417/gcc/testsuite/g++.dg/torture/pr120987-1.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/g++.dg/torture/pr120987-1.C	Thu Apr 23 22:32:08 2026
***************
*** 0 ****
--- 1,56 ----
+ // { dg-do run { target c++11 } }
+ // PR tree-optimization/120987
+ 
+ #include <memory>
+ #include <string>
+ #include <cstdlib>
+ 
+ #define ERROR_STRING  "012345678901234567"
+ 
+ struct gdb_exception
+ {
+   gdb_exception (const char *s)
+     : message (std::make_shared<std::string> (s))
+   {}
+ 
+   explicit gdb_exception (gdb_exception &&other) noexcept
+     : message (std::move (other.message))
+   {
+     volatile int a = 1;
+     if (a != 1)
+       abort ();
+   }
+   
+ 
+   std::shared_ptr<std::string> message;
+ };
+ 
+ void __attribute__((noinline, noclone))
+ throw_exception (gdb_exception &&exception)
+ {
+   throw gdb_exception (std::move (exception));
+ }
+ 
+ static void __attribute__((noinline, noclone))
+ parse_linespec (void)
+ {
+   struct gdb_exception file_exception (ERROR_STRING);
+   throw_exception (std::move (file_exception));
+ }
+ 
+ int
+ main (void)
+ {
+   try
+     {
+       parse_linespec ();
+     }
+   catch (const gdb_exception &e)
+     {
+       if (*e.message != ERROR_STRING)
+         __builtin_abort();
+       return 0;
+     }
+ 
+   __builtin_abort();
+ }
diff -Nrcpad gcc-14-20260417/gcc/testsuite/g++.dg/torture/pr124130.C gcc-14-20260423/gcc/testsuite/g++.dg/torture/pr124130.C
*** gcc-14-20260417/gcc/testsuite/g++.dg/torture/pr124130.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/g++.dg/torture/pr124130.C	Thu Apr 23 22:32:08 2026
***************
*** 0 ****
--- 1,15 ----
+ // { dg-do compile }
+ 
+ void __sigsetjmp_cancel() __attribute__((__returns_twice__));
+ struct basic_ostream {
+   basic_ostream &operator<<(basic_ostream &__pf(basic_ostream &)) {
+     return __pf(*this);
+   }
+ } cerr;
+ extern "C" void _exit(int);
+ enum { Exit_Internal_Error };
+ basic_ostream &report_error(basic_ostream &) { _exit(Exit_Internal_Error); }
+ void thread_pool_thread_main() {
+   __sigsetjmp_cancel();
+   cerr << report_error;
+ }
diff -Nrcpad gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr123061.c gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr123061.c
*** gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr123061.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr123061.c	Thu Apr 23 22:32:09 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-ffinite-loops" } */
+ 
+ int a, b, c;
+ int d() {
+   while (a)
+     ;
+   return 0;
+ }
+ static int e(int f, int g) {
+   c = f;
+   while (1) {
+     f = 0;
+     do {
+       c = -c;
+       if (c >= 0)
+         goto h;
+     } while (-1 / b);
+     return d();
+   h:
+     b = g;
+   }
+ }
+ int main()
+ {
+   while (e(-4, 3))
+     ;
+   return 0;
+ }
diff -Nrcpad gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr123416.c gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr123416.c
*** gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr123416.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr123416.c	Thu Apr 23 22:32:09 2026
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fno-strict-aliasing" } */
+ 
+ struct a {
+   int b;
+ } c;
+ 
+ int d;
+ 
+ static struct a
+ g()
+ {
+   int a[2], b, f = 0;
+   for (; f < 2; f++)
+     a[f] = 1;
+   b = a[0];
+   if (b)
+     return c;
+ }
+ int main()
+ {
+   c.b = 1;
+   struct a e = g();
+   c = g();
+   if (!c.b || !e.b)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr123636.c gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr123636.c
*** gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr123636.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr123636.c	Thu Apr 23 22:32:09 2026
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do run } */
+ 
+ int main()
+ {
+   int g_58;
+   _Bool g_170 = 0;
+   int m = 0;
+   for (int i = 0; i < 2; i++)
+     {
+       int arr[3] = {};
+ label:
+       g_58 = g_170 == 0;
+       for (int a = 0; a < 3; a++)
+ 	m += arr[a];
+       for (int j = 0; j != 7; ++j)
+ 	for (int k = 0; k < 2; k++)
+ 	  {
+ 	    --g_170;
+ 	    if (g_58) goto label;
+ 	    arr[0] = 2;
+ 	  }
+     }
+   if (m != 0)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr124132.c gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr124132.c
*** gcc-14-20260417/gcc/testsuite/gcc.dg/torture/pr124132.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/gcc.dg/torture/pr124132.c	Thu Apr 23 22:32:09 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-w" } */
+ 
+ char slow_mul1_dst1, code_some_shards___gf_mulc__0, code_some_shards_lim;
+ long slow_mul1_dst_max;
+ long long code_some_shards_pos;
+ void code_some_shards()
+ {
+   char *dst = &slow_mul1_dst1;
+   for (; dst < &code_some_shards_lim; dst++)
+     {
+       if (code_some_shards_pos < slow_mul1_dst_max)
+         *dst = code_some_shards___gf_mulc__0;
+       code_some_shards_pos += 1;
+     }
+ }
diff -Nrcpad gcc-14-20260417/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c gcc-14-20260423/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c
*** gcc-14-20260417/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c	Thu Apr 23 22:32:10 2026
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -fdump-tree-lim2-details" } */
+ 
+ void foo (int n, int m, int *a, int *p, int * __restrict q)
+ {
+   for (int i = 0; i < n; ++i)
+     {
+       int j = 0;
+       do
+         {
+           q[j] = *a * p[i];
+         }
+       while (++j < m);
+     }
+ }
+ 
+ /* Verify we can hoist *a two levels.  */ 
+ /* { dg-final { scan-tree-dump-times "out of loop 1" 1 "lim2" } } */
diff -Nrcpad gcc-14-20260417/gcc/testsuite/gcc.dg/vect/vect-pr124677.c gcc-14-20260423/gcc/testsuite/gcc.dg/vect/vect-pr124677.c
*** gcc-14-20260417/gcc/testsuite/gcc.dg/vect/vect-pr124677.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/gcc.dg/vect/vect-pr124677.c	Thu Apr 23 22:32:10 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-tree-copy-prop" } */
+ 
+ int printf(const char *, ...);
+ int a, b, c, d, e;
+ int g(int h) { return h >> a; }
+ int main()
+ {
+   int j = c;
+   while (a)
+     while (1)
+       {
+ 	while (1)
+ 	  {
+ 	    for (e = 0; e < 16; e++)
+ 	      {
+ 		d = b;
+ 		j && (b = g(2));
+ 	      }
+ 	    break;
+ 	  }
+ 	printf("%d\n", b);
+       }
+   return 0;
+ }
diff -Nrcpad gcc-14-20260417/gcc/testsuite/gfortran.dg/gomp/pr98203.f90 gcc-14-20260423/gcc/testsuite/gfortran.dg/gomp/pr98203.f90
*** gcc-14-20260417/gcc/testsuite/gfortran.dg/gomp/pr98203.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260423/gcc/testsuite/gfortran.dg/gomp/pr98203.f90	Thu Apr 23 22:32:12 2026
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! PR fortran/98203
+ ! Contributed by G. Steinmetz <gscfq@t-online.de>
+ !
+ ! ICE in gfc_trans_omp_do with collapse(2) and non-unit stride.
+ 
+ subroutine s
+   integer :: i, j
+   !$omp parallel do collapse(2)
+   do i = 1, 10, 2
+     do j = 1, 10
+     end do
+   end do
+ end
diff -Nrcpad gcc-14-20260417/gcc/tree-inline.cc gcc-14-20260423/gcc/tree-inline.cc
*** gcc-14-20260417/gcc/tree-inline.cc	Fri Apr 17 22:32:15 2026
--- gcc-14-20260423/gcc/tree-inline.cc	Thu Apr 23 22:32:13 2026
*************** copy_edges_for_bb (basic_block bb, profi
*** 2711,2716 ****
--- 2711,2719 ----
  	      make_single_succ_edge (copy_stmt_bb, abnormal_goto_dest,
  				     EDGE_ABNORMAL);
  	      gimple_call_set_ctrl_altering (copy_stmt, true);
+ 	      if (is_a <gcall *> (copy_stmt)
+ 		  && (gimple_call_flags (copy_stmt) & ECF_NORETURN))
+ 		fixup_noreturn_call (copy_stmt);
  	    }
  	}
  
*************** copy_debug_stmts (copy_body_data *id)
*** 3322,3328 ****
      return;
  
    for (gdebug *stmt : id->debug_stmts)
!     copy_debug_stmt (stmt, id);
  
    id->debug_stmts.release ();
  }
--- 3325,3333 ----
      return;
  
    for (gdebug *stmt : id->debug_stmts)
!     /* But avoid re-processing debug stmts that have been elided.  */
!     if (gimple_bb (stmt))
!       copy_debug_stmt (stmt, id);
  
    id->debug_stmts.release ();
  }
diff -Nrcpad gcc-14-20260417/gcc/tree-ssa-loop-im.cc gcc-14-20260423/gcc/tree-ssa-loop-im.cc
*** gcc-14-20260417/gcc/tree-ssa-loop-im.cc	Fri Apr 17 22:32:15 2026
--- gcc-14-20260423/gcc/tree-ssa-loop-im.cc	Thu Apr 23 22:32:13 2026
*************** fill_always_executed_in_1 (class loop *l
*** 3345,3438 ****
    edge e;
    class loop *inn_loop = loop;
  
!   if (ALWAYS_EXECUTED_IN (loop->header) == NULL)
      {
!       auto_vec<basic_block, 64> worklist;
!       worklist.reserve_exact (loop->num_nodes);
!       worklist.quick_push (loop->header);
!       do
! 	{
! 	  edge_iterator ei;
! 	  bb = worklist.pop ();
  
! 	  if (!flow_bb_inside_loop_p (inn_loop, bb))
! 	    {
! 	      /* When we are leaving a possibly infinite inner loop
! 		 we have to stop processing.  */
! 	      if (!finite_loop_p (inn_loop))
! 		break;
! 	      /* If the loop was finite we can continue with processing
! 		 the loop we exited to.  */
! 	      inn_loop = bb->loop_father;
! 	    }
  
! 	  if (dominated_by_p (CDI_DOMINATORS, loop->latch, bb))
! 	    last = bb;
  
! 	  if (bitmap_bit_p (contains_call, bb->index))
! 	    break;
  
! 	  /* If LOOP exits from this BB stop processing.  */
! 	  FOR_EACH_EDGE (e, ei, bb->succs)
! 	    if (!flow_bb_inside_loop_p (loop, e->dest))
! 	      break;
! 	  if (e)
! 	    break;
  
! 	  /* A loop might be infinite (TODO use simple loop analysis
! 	     to disprove this if possible).  */
! 	  if (bb->flags & BB_IRREDUCIBLE_LOOP)
! 	    break;
  
! 	  if (bb->loop_father->header == bb)
! 	    /* Record that we enter into a subloop since it might not
! 	       be finite.  */
! 	    /* ???  Entering into a not always executed subloop makes
! 	       fill_always_executed_in quadratic in loop depth since
! 	       we walk those loops N times.  This is not a problem
! 	       in practice though, see PR102253 for a worst-case testcase.  */
! 	    inn_loop = bb->loop_father;
  
! 	  /* Walk the body of LOOP sorted by dominance relation.  Additionally,
! 	     if a basic block S dominates the latch, then only blocks dominated
! 	     by S are after it.
! 	     This is get_loop_body_in_dom_order using a worklist algorithm and
! 	     stopping once we are no longer interested in visiting further
! 	     blocks.  */
! 	  unsigned old_len = worklist.length ();
! 	  unsigned postpone = 0;
! 	  for (basic_block son = first_dom_son (CDI_DOMINATORS, bb);
! 	       son;
! 	       son = next_dom_son (CDI_DOMINATORS, son))
! 	    {
! 	      if (!flow_bb_inside_loop_p (loop, son))
! 		continue;
! 	      if (dominated_by_p (CDI_DOMINATORS, loop->latch, son))
! 		postpone = worklist.length ();
! 	      worklist.quick_push (son);
! 	    }
! 	  if (postpone)
! 	    /* Postponing the block that dominates the latch means
! 	       processing it last and thus putting it earliest in the
! 	       worklist.  */
! 	    std::swap (worklist[old_len], worklist[postpone]);
  	}
!       while (!worklist.is_empty ());
  
!       while (1)
  	{
  	  if (dump_enabled_p ())
  	    dump_printf (MSG_NOTE, "BB %d is always executed in loop %d\n",
  			 last->index, loop->num);
  	  SET_ALWAYS_EXECUTED_IN (last, loop);
- 	  if (last == loop->header)
- 	    break;
- 	  last = get_immediate_dominator (CDI_DOMINATORS, last);
  	}
      }
- 
-   for (loop = loop->inner; loop; loop = loop->next)
-     fill_always_executed_in_1 (loop, contains_call);
  }
  
  /* Fills ALWAYS_EXECUTED_IN information for basic blocks, i.e.
--- 3345,3440 ----
    edge e;
    class loop *inn_loop = loop;
  
!   for (class loop *inner = loop->inner; inner; inner = inner->next)
!     fill_always_executed_in_1 (inner, contains_call);
! 
!   auto_vec<basic_block, 64> worklist;
!   worklist.reserve_exact (loop->num_nodes);
!   worklist.quick_push (loop->header);
!   do
      {
!       edge_iterator ei;
!       bb = worklist.pop ();
  
!       if (!flow_bb_inside_loop_p (inn_loop, bb))
! 	{
! 	  /* When we are leaving a possibly infinite inner loop
! 	     we have to stop processing.  */
! 	  if (!finite_loop_p (inn_loop))
! 	    break;
! 	  /* If the loop was finite we can continue with processing
! 	     the loop we exited to.  */
! 	  inn_loop = bb->loop_father;
! 	}
  
!       if (dominated_by_p (CDI_DOMINATORS, loop->latch, bb))
! 	last = bb;
  
!       if (bitmap_bit_p (contains_call, bb->index))
! 	break;
  
!       /* If LOOP exits from this BB stop processing.  */
!       FOR_EACH_EDGE (e, ei, bb->succs)
! 	if (!flow_bb_inside_loop_p (loop, e->dest))
! 	  break;
!       if (e)
! 	break;
  
!       /* A loop might be infinite (TODO use simple loop analysis
! 	 to disprove this if possible).  */
!       if (bb->flags & BB_IRREDUCIBLE_LOOP)
! 	break;
  
!       if (bb->loop_father->header == bb)
! 	/* Record that we enter into a subloop since it might not
! 	   be finite.  */
! 	/* ???  Entering into a not always executed subloop makes
! 	   fill_always_executed_in quadratic in loop depth since
! 	   we walk those loops N times.  This is not a problem
! 	   in practice though, see PR102253 for a worst-case testcase.  */
! 	inn_loop = bb->loop_father;
  
!       /* Walk the body of LOOP sorted by dominance relation.  Additionally,
! 	 if a basic block S dominates the latch, then only blocks dominated
! 	 by S are after it.
! 	 This is get_loop_body_in_dom_order using a worklist algorithm and
! 	 stopping once we are no longer interested in visiting further
! 	 blocks.  */
!       unsigned old_len = worklist.length ();
!       unsigned postpone = 0;
!       for (basic_block son = first_dom_son (CDI_DOMINATORS, bb);
! 	   son;
! 	   son = next_dom_son (CDI_DOMINATORS, son))
! 	{
! 	  if (!flow_bb_inside_loop_p (loop, son))
! 	    continue;
! 	  if (dominated_by_p (CDI_DOMINATORS, loop->latch, son))
! 	    postpone = worklist.length ();
! 	  worklist.quick_push (son);
  	}
!       if (postpone)
! 	/* Postponing the block that dominates the latch means
! 	   processing it last and thus putting it earliest in the
! 	   worklist.  */
! 	std::swap (worklist[old_len], worklist[postpone]);
!     }
!   while (!worklist.is_empty ());
  
!   while (1)
!     {
!       if (last->loop_father == loop
! 	  || (ALWAYS_EXECUTED_IN (last)
! 	      && loop_outer (ALWAYS_EXECUTED_IN (last)) == loop))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf (MSG_NOTE, "BB %d is always executed in loop %d\n",
  			 last->index, loop->num);
  	  SET_ALWAYS_EXECUTED_IN (last, loop);
  	}
+       if (last == loop->header)
+ 	break;
+       last = get_immediate_dominator (CDI_DOMINATORS, last);
      }
  }
  
  /* Fills ALWAYS_EXECUTED_IN information for basic blocks, i.e.
diff -Nrcpad gcc-14-20260417/gcc/tree-ssa-loop-split.cc gcc-14-20260423/gcc/tree-ssa-loop-split.cc
*** gcc-14-20260417/gcc/tree-ssa-loop-split.cc	Fri Apr 17 22:32:15 2026
--- gcc-14-20260423/gcc/tree-ssa-loop-split.cc	Thu Apr 23 22:32:13 2026
*************** compute_new_first_bound (gimple_seq *stm
*** 458,478 ****
    tree end = force_gimple_operand (niter->bound, &stmts2,
  					true, NULL_TREE);
    gimple_seq_add_seq_without_update (stmts, stmts2);
!   if (POINTER_TYPE_P (TREE_TYPE (enddiff)))
!     {
!       tree tem = gimple_convert (stmts, sizetype, enddiff);
!       tem = gimple_build (stmts, NEGATE_EXPR, sizetype, tem);
!       enddiff = gimple_build (stmts, POINTER_PLUS_EXPR,
! 			      TREE_TYPE (enddiff),
! 			      end, tem);
!     }
    else
      enddiff = gimple_build (stmts, MINUS_EXPR, TREE_TYPE (enddiff),
  			    end, enddiff);
  
    /* Compute guard_init + (end-beg).  */
    tree newbound;
-   enddiff = gimple_convert (stmts, TREE_TYPE (guard_init), enddiff);
    if (POINTER_TYPE_P (TREE_TYPE (guard_init)))
      {
        enddiff = gimple_convert (stmts, sizetype, enddiff);
--- 458,472 ----
    tree end = force_gimple_operand (niter->bound, &stmts2,
  					true, NULL_TREE);
    gimple_seq_add_seq_without_update (stmts, stmts2);
!   if (POINTER_TYPE_P (TREE_TYPE (controlbase)))
!     enddiff = gimple_build (stmts, POINTER_DIFF_EXPR,
! 			    ssizetype, end, enddiff);
    else
      enddiff = gimple_build (stmts, MINUS_EXPR, TREE_TYPE (enddiff),
  			    end, enddiff);
  
    /* Compute guard_init + (end-beg).  */
    tree newbound;
    if (POINTER_TYPE_P (TREE_TYPE (guard_init)))
      {
        enddiff = gimple_convert (stmts, sizetype, enddiff);
*************** compute_new_first_bound (gimple_seq *stm
*** 481,488 ****
  			       guard_init, enddiff);
      }
    else
!     newbound = gimple_build (stmts, PLUS_EXPR, TREE_TYPE (guard_init),
! 			     guard_init, enddiff);
  
    /* Depending on the direction of the IVs the new bound for the first
       loop is the minimum or maximum of old bound and border.
--- 475,485 ----
  			       guard_init, enddiff);
      }
    else
!     {
!       enddiff = gimple_convert (stmts, TREE_TYPE (guard_init), enddiff);
!       newbound = gimple_build (stmts, PLUS_EXPR, TREE_TYPE (guard_init),
! 			       guard_init, enddiff);
!     }
  
    /* Depending on the direction of the IVs the new bound for the first
       loop is the minimum or maximum of old bound and border.
diff -Nrcpad gcc-14-20260417/gcc/tree-vect-loop.cc gcc-14-20260423/gcc/tree-vect-loop.cc
*** gcc-14-20260417/gcc/tree-vect-loop.cc	Fri Apr 17 22:32:15 2026
--- gcc-14-20260423/gcc/tree-vect-loop.cc	Thu Apr 23 22:32:13 2026
*************** vectorizable_recurr (loop_vec_info loop_
*** 9358,9364 ****
    edge le = loop_latch_edge (LOOP_VINFO_LOOP (loop_vinfo));
    gimple *latch_def = SSA_NAME_DEF_STMT (PHI_ARG_DEF_FROM_EDGE (phi, le));
    gimple_stmt_iterator gsi2 = gsi_for_stmt (latch_def);
!   gsi_next (&gsi2);
  
    for (unsigned i = 0; i < ncopies; ++i)
      {
--- 9358,9370 ----
    edge le = loop_latch_edge (LOOP_VINFO_LOOP (loop_vinfo));
    gimple *latch_def = SSA_NAME_DEF_STMT (PHI_ARG_DEF_FROM_EDGE (phi, le));
    gimple_stmt_iterator gsi2 = gsi_for_stmt (latch_def);
!   do
!     {
!       gsi_next (&gsi2);
!     }
!   /* Skip inserted vectorized stmts for the latch definition.  We have to
!      insert after those.  */
!   while (gimple_uid (gsi_stmt (gsi2)) == 0);
  
    for (unsigned i = 0; i < ncopies; ++i)
      {
diff -Nrcpad gcc-14-20260417/libstdc++-v3/ChangeLog gcc-14-20260423/libstdc++-v3/ChangeLog
*** gcc-14-20260417/libstdc++-v3/ChangeLog	Fri Apr 17 22:32:16 2026
--- gcc-14-20260423/libstdc++-v3/ChangeLog	Thu Apr 23 22:32:14 2026
***************
*** 1,3 ****
--- 1,15 ----
+ 2026-04-22  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (stdbit_h, stdckdint_h): Define.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/c_compatibility/stdbit.h (__cpp_lib_stdbit_h): Define
+ 	and use it in guards.
+ 	* include/c_compatibility/stdckdint.h (__cpp_lib_stdckdint_h):
+ 	Define and use it in guards.
+ 
  2026-03-30  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260417/libstdc++-v3/include/bits/version.def gcc-14-20260423/libstdc++-v3/include/bits/version.def
*** gcc-14-20260417/libstdc++-v3/include/bits/version.def	Fri Apr 17 22:32:17 2026
--- gcc-14-20260423/libstdc++-v3/include/bits/version.def	Thu Apr 23 22:32:14 2026
*************** ftms = {
*** 1616,1621 ****
--- 1616,1637 ----
  };
  
  ftms = {
+   name = stdbit_h;
+   values = {
+     v = 202603;
+     cxxmin = 26;
+   };
+ };
+ 
+ ftms = {
+   name = stdckdint_h;
+   values = {
+     v = 202603;
+     cxxmin = 26;
+   };
+ };
+ 
+ ftms = {
    name = adaptor_iterator_pair_constructor;
    values = {
      v = 202106;
diff -Nrcpad gcc-14-20260417/libstdc++-v3/include/bits/version.h gcc-14-20260423/libstdc++-v3/include/bits/version.h
*** gcc-14-20260417/libstdc++-v3/include/bits/version.h	Fri Apr 17 22:32:17 2026
--- gcc-14-20260423/libstdc++-v3/include/bits/version.h	Thu Apr 23 22:32:14 2026
***************
*** 1798,1803 ****
--- 1798,1823 ----
  #endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */
  #undef __glibcxx_want_stdatomic_h
  
+ #if !defined(__cpp_lib_stdbit_h)
+ # if (__cplusplus >  202302L)
+ #  define __glibcxx_stdbit_h 202603L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdbit_h)
+ #   define __cpp_lib_stdbit_h 202603L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_stdbit_h) */
+ #undef __glibcxx_want_stdbit_h
+ 
+ #if !defined(__cpp_lib_stdckdint_h)
+ # if (__cplusplus >  202302L)
+ #  define __glibcxx_stdckdint_h 202603L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdckdint_h)
+ #   define __cpp_lib_stdckdint_h 202603L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_stdckdint_h) */
+ #undef __glibcxx_want_stdckdint_h
+ 
  #if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
  # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
  #  define __glibcxx_adaptor_iterator_pair_constructor 202106L
diff -Nrcpad gcc-14-20260417/libstdc++-v3/include/c_compatibility/stdbit.h gcc-14-20260423/libstdc++-v3/include/c_compatibility/stdbit.h
*** gcc-14-20260417/libstdc++-v3/include/c_compatibility/stdbit.h	Fri Apr 17 22:32:17 2026
--- gcc-14-20260423/libstdc++-v3/include/c_compatibility/stdbit.h	Thu Apr 23 22:32:14 2026
***************
*** 29,35 ****
  #ifndef _GLIBCXX_STDBIT_H
  #define _GLIBCXX_STDBIT_H
  
! #if __cplusplus > 202302L
  #include <bit>
  
  #define __STDC_VERSION_STDBIT_H__ 202311L
--- 29,39 ----
  #ifndef _GLIBCXX_STDBIT_H
  #define _GLIBCXX_STDBIT_H
  
! #define __glibcxx_want_stdbit_h
! #include <bits/version.h>
! 
! #ifdef __cpp_lib_stdbit_h // C++ >= 26
! 
  #include <bit>
  
  #define __STDC_VERSION_STDBIT_H__ 202311L
*************** _GLIBCXX_STDBIT_FUNC(stdc_bit_floor);
*** 577,582 ****
  _GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
  #undef _GLIBCXX_STDBIT_FUNC
  #endif // !DOXYGEN
! #endif // C++26
  
  #endif // _GLIBCXX_STDBIT_H
--- 581,586 ----
  _GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
  #undef _GLIBCXX_STDBIT_FUNC
  #endif // !DOXYGEN
! #endif // __cpp_lib_stdbit_h
  
  #endif // _GLIBCXX_STDBIT_H
diff -Nrcpad gcc-14-20260417/libstdc++-v3/include/c_compatibility/stdckdint.h gcc-14-20260423/libstdc++-v3/include/c_compatibility/stdckdint.h
*** gcc-14-20260417/libstdc++-v3/include/c_compatibility/stdckdint.h	Fri Apr 17 22:32:17 2026
--- gcc-14-20260423/libstdc++-v3/include/c_compatibility/stdckdint.h	Thu Apr 23 22:32:14 2026
***************
*** 29,35 ****
  #ifndef _GLIBCXX_STDCKDINT_H
  #define _GLIBCXX_STDCKDINT_H
  
! #if __cplusplus > 202302L
  #include <type_traits>
  #include <concepts>
  
--- 29,39 ----
  #ifndef _GLIBCXX_STDCKDINT_H
  #define _GLIBCXX_STDCKDINT_H
  
! #define __glibcxx_want_stdckdint_h
! #include <bits/version.h>
! 
! #ifdef __cpp_lib_stdckdint_h // C++ >= 26
! 
  #include <type_traits>
  #include <concepts>
  
*************** using __gnu_cxx::ckd_sub;
*** 108,113 ****
  using __gnu_cxx::ckd_mul;
  #endif
  
! #endif // C++26
  
  #endif // _GLIBCXX_STDCKDINT_H
--- 112,117 ----
  using __gnu_cxx::ckd_mul;
  #endif
  
! #endif // __cpp_lib_stdckdint_h
  
  #endif // _GLIBCXX_STDCKDINT_H
