diff -Nrcpad gcc-14-20260327/LAST_UPDATED gcc-14-20260403/LAST_UPDATED
*** gcc-14-20260327/LAST_UPDATED	Fri Mar 27 22:32:21 2026
--- gcc-14-20260403/LAST_UPDATED	Fri Apr  3 22:32:21 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 8463c3454cb1eb7637e12ca7992262c421e616d8
--- 1 ----
! Obtained from git: releases/gcc-14 revision 703605453545bdfc14d841f171582ff10421d5b5
diff -Nrcpad gcc-14-20260327/MD5SUMS gcc-14-20260403/MD5SUMS
*** gcc-14-20260327/MD5SUMS	Fri Mar 27 22:32:25 2026
--- gcc-14-20260403/MD5SUMS	Fri Apr  3 22:32:26 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260327.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-20260403.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
! 08573d98bbbd32d7a3a671e163a973ec  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 69d038eb5d5e14c505fdd08eaf1fb95b  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
! 2e01267a9d4b366d26cece6620eab583  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
! fd37c8d624d326235a8e4b7f778b7927  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
! b9bf14ce3772a1f07adf3ba09d529919  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
! 41a94851a97f8705266524f6e1613348  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** fb5f673cea6166ff90878e05bfa7dfe0  gcc/bu
*** 3149,3155 ****
  c3a52074158c4bcb100e638fcd471649  gcc/builtins.cc
  7bc731b65a1287130883ea830f32b347  gcc/builtins.def
  7fad42491d4a625f93bf21a7e2fb37de  gcc/builtins.h
! fbecf775eb788ffce53298d5bab7094e  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  5c99106819e8051c3581d5098616d0dd  gcc/c-family/c-ada-spec.cc
  ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
--- 3149,3155 ----
  c3a52074158c4bcb100e638fcd471649  gcc/builtins.cc
  7bc731b65a1287130883ea830f32b347  gcc/builtins.def
  7fad42491d4a625f93bf21a7e2fb37de  gcc/builtins.h
! b5d1f3208e24d17936606a2172955b0a  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  5c99106819e8051c3581d5098616d0dd  gcc/c-family/c-ada-spec.cc
  ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
*************** d8e1cd0b904797f173e2493caaa19e03  gcc/c-
*** 3157,3163 ****
  a9bb7bbf89706e206a593a31d7c52261  gcc/c-family/c-common.cc
  51998f9e7aec6e99e0428f2b836629c1  gcc/c-family/c-common.def
  b1e23baecab2464ead1618cb2d50a6ef  gcc/c-family/c-common.h
! 7e6740fc9833147bce7ec636f8223256  gcc/c-family/c-cppbuiltin.cc
  3c51c8a1bf9841ca850a743c9335be7b  gcc/c-family/c-dump.cc
  ed5e4fdaaa3c0c77618731dc0294dbc4  gcc/c-family/c-format.cc
  4b9c119ce2a0502632ac9f26fe560055  gcc/c-family/c-format.h
--- 3157,3163 ----
  a9bb7bbf89706e206a593a31d7c52261  gcc/c-family/c-common.cc
  51998f9e7aec6e99e0428f2b836629c1  gcc/c-family/c-common.def
  b1e23baecab2464ead1618cb2d50a6ef  gcc/c-family/c-common.h
! f956d1fa8d26698610c709c58b4b695b  gcc/c-family/c-cppbuiltin.cc
  3c51c8a1bf9841ca850a743c9335be7b  gcc/c-family/c-dump.cc
  ed5e4fdaaa3c0c77618731dc0294dbc4  gcc/c-family/c-format.cc
  4b9c119ce2a0502632ac9f26fe560055  gcc/c-family/c-format.h
*************** be688e434793ea02a7f9ee52992ea34d  gcc/co
*** 3312,3318 ****
  32188ac2131c770df03339725367ae4e  gcc/compare-elim.cc
  d7b7be0853c1adedc2ef4b171f9d8522  gcc/conditions.h
  ce915e557866ffa3df9a5b35ed401ce0  gcc/config.build
! 361f55e991b72c939b094fb1226b5913  gcc/config.gcc
  a838f308e3dcdd63685c24e6ff2586be  gcc/config.host
  3b202d5bab614e2275378bef1f708574  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
--- 3312,3318 ----
  32188ac2131c770df03339725367ae4e  gcc/compare-elim.cc
  d7b7be0853c1adedc2ef4b171f9d8522  gcc/conditions.h
  ce915e557866ffa3df9a5b35ed401ce0  gcc/config.build
! 99ab9e3a07eb91876e573c783cc1abb3  gcc/config.gcc
  a838f308e3dcdd63685c24e6ff2586be  gcc/config.host
  3b202d5bab614e2275378bef1f708574  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
*************** d36a2aabdf8da39363d9be0efef739b0  gcc/co
*** 5363,5369 ****
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! fcb9eb02c1b181164d253bbe878e742a  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5363,5369 ----
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! 150e7a2b57e1abaa5276211e0c579aa8  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** cb06dcbb3232403bb30ebd0d7d1feae1  gcc/cp
*** 5398,5404 ****
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  458dd30ec01e1ab016feef4141e9cd70  gcc/cp/Make-lang.in
! 9540915fc5b11ee5890f1d5562c611e5  gcc/cp/call.cc
  eb0e2e62caf98260cc2641216d140ae9  gcc/cp/cfns.gperf
  dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
  cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
--- 5398,5404 ----
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  458dd30ec01e1ab016feef4141e9cd70  gcc/cp/Make-lang.in
! e0effa7d82a567f1047f047eab0fcbfe  gcc/cp/call.cc
  eb0e2e62caf98260cc2641216d140ae9  gcc/cp/cfns.gperf
  dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
  cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
*************** e1f1e00efaa3ab325dcde6256bd453ea  gcc/cp
*** 5421,5427 ****
  56f39bfaef18eed52575804302d7f065  gcc/cp/cxx-pretty-print.cc
  08e116dfeec3d3e6814661d5e4274639  gcc/cp/cxx-pretty-print.h
  8947390d58d06707b7fc5112da286233  gcc/cp/cxxapi-data.csv
! c6f67dc5986c092e1ada72c268f60ce5  gcc/cp/decl.cc
  1abb8e5bf838320c47bbb41c28ac53c8  gcc/cp/decl.h
  1cb099a7980289f4fcdda85452c6a3e4  gcc/cp/decl2.cc
  db1260dd767707d8dcbdbdcd7982bfad  gcc/cp/dump.cc
--- 5421,5427 ----
  56f39bfaef18eed52575804302d7f065  gcc/cp/cxx-pretty-print.cc
  08e116dfeec3d3e6814661d5e4274639  gcc/cp/cxx-pretty-print.h
  8947390d58d06707b7fc5112da286233  gcc/cp/cxxapi-data.csv
! a4f5a2995bad124b53344d0bcad1da36  gcc/cp/decl.cc
  1abb8e5bf838320c47bbb41c28ac53c8  gcc/cp/decl.h
  1cb099a7980289f4fcdda85452c6a3e4  gcc/cp/decl2.cc
  db1260dd767707d8dcbdbdcd7982bfad  gcc/cp/dump.cc
*************** e5de0a6c0e25db99122b38cfbd158f92  gcc/cp
*** 5448,5454 ****
  b4ea7976f776ee37fce22b16756ad0e0  gcc/cp/optimize.cc
  9425e1dd76dabb195576507c7bc7a94a  gcc/cp/parser.cc
  64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
! 0f0bd30656423517994f209afd61beba  gcc/cp/pt.cc
  c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
  5e3e9c87ee323734a11e7081aaa64fa5  gcc/cp/rtti.cc
  7764edeba26dbb6b15962e6395cba9d2  gcc/cp/search.cc
--- 5448,5454 ----
  b4ea7976f776ee37fce22b16756ad0e0  gcc/cp/optimize.cc
  9425e1dd76dabb195576507c7bc7a94a  gcc/cp/parser.cc
  64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
! 448339060118bbddc256f35c182e5f15  gcc/cp/pt.cc
  c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
  5e3e9c87ee323734a11e7081aaa64fa5  gcc/cp/rtti.cc
  7764edeba26dbb6b15962e6395cba9d2  gcc/cp/search.cc
*************** dce7dac7e905ada28c6563d930b531eb  gcc/fo
*** 5874,5880 ****
  b954a317257afa3149e46a5bce58d9c2  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 9e1cd9369cd544e76791fcbdcde727b4  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
! e79164383c9b762939eaa7531d6b75df  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** af0d7f72f88d0810924a6a579045eeab  gcc/fo
*** 5913,5919 ****
  2df1006a61dabc70f90426595056788a  gcc/fortran/cpp.h
  aa3e28e6adf564765577a4f376bb9d05  gcc/fortran/data.cc
  2a77523a8c759e7a5e480175dfce3e06  gcc/fortran/data.h
! 956624aeb328999393fe4e43181a4228  gcc/fortran/decl.cc
  dbbc0770ad9027571c63b5d0533e40ec  gcc/fortran/dependency.cc
  5a69241d57d8b6127ecb02e0a22bee6e  gcc/fortran/dependency.h
  af59533c4bfc13e7b07e6ec1c164832c  gcc/fortran/dump-parse-tree.cc
--- 5913,5919 ----
  2df1006a61dabc70f90426595056788a  gcc/fortran/cpp.h
  aa3e28e6adf564765577a4f376bb9d05  gcc/fortran/data.cc
  2a77523a8c759e7a5e480175dfce3e06  gcc/fortran/data.h
! 6b5d95421eafe28315fbe36ecacac443  gcc/fortran/decl.cc
  dbbc0770ad9027571c63b5d0533e40ec  gcc/fortran/dependency.cc
  5a69241d57d8b6127ecb02e0a22bee6e  gcc/fortran/dependency.h
  af59533c4bfc13e7b07e6ec1c164832c  gcc/fortran/dump-parse-tree.cc
*************** f731d32ce05d070f1df4967c2ba8c9c2  gcc/fo
*** 5940,5946 ****
  9842051e2822d8130f578344e561d394  gcc/fortran/lang.opt
  c90ca625190445c2f9e5014f2643e5f1  gcc/fortran/lang.opt.urls
  8f70b6af9bb7b493f688d2387ae11bd8  gcc/fortran/libgfortran.h
! d5921591f5cceed6247945a7f1793ef8  gcc/fortran/match.cc
  61d211909807d100996092bd61b7148b  gcc/fortran/match.h
  5796e2abb1ed0b90aafbca3796a9e5b8  gcc/fortran/matchexp.cc
  610d97669425c033f4edb591e02b22d3  gcc/fortran/mathbuiltins.def
--- 5940,5946 ----
  9842051e2822d8130f578344e561d394  gcc/fortran/lang.opt
  c90ca625190445c2f9e5014f2643e5f1  gcc/fortran/lang.opt.urls
  8f70b6af9bb7b493f688d2387ae11bd8  gcc/fortran/libgfortran.h
! ed7c9cd3a6d06ebdc33c533895c02089  gcc/fortran/match.cc
  61d211909807d100996092bd61b7148b  gcc/fortran/match.h
  5796e2abb1ed0b90aafbca3796a9e5b8  gcc/fortran/matchexp.cc
  610d97669425c033f4edb591e02b22d3  gcc/fortran/mathbuiltins.def
*************** c0fda053eecaf4f55c32d4fe8c8db3e5  gcc/fo
*** 5964,5977 ****
  700878379c55cdec457b83a922d93699  gcc/fortran/trans-common.cc
  c420f80da3e0e794311a9b90c49abce5  gcc/fortran/trans-const.cc
  5644e20cd4aa0324875834a377cf89a4  gcc/fortran/trans-const.h
! a13796bc19ee899957fa78d9652f5ff5  gcc/fortran/trans-decl.cc
! 90f7c06ed08717b69d8ee3e4952f5e39  gcc/fortran/trans-expr.cc
  50146a04d803fafbc56c31ef04c375c3  gcc/fortran/trans-intrinsic.cc
  9bfdb89867309e2ece2578749f55ece8  gcc/fortran/trans-io.cc
! be2abe61b914863c8dce5e37cb7f1491  gcc/fortran/trans-openmp.cc
  0a23775591d7d3e4fdb603d7bd9febb1  gcc/fortran/trans-stmt.cc
  1b5e4247678ad0441b5b0f26de2ebd4f  gcc/fortran/trans-stmt.h
! 3fc891f910a151aeff7237aa0891a96a  gcc/fortran/trans-types.cc
  99093042b01c6c4c1ee2c064808bdaa0  gcc/fortran/trans-types.h
  d9d274d783642f6e1749266ab7178b64  gcc/fortran/trans.cc
  29a1230eb3bca55231d07eb0a5c33e86  gcc/fortran/trans.h
--- 5964,5977 ----
  700878379c55cdec457b83a922d93699  gcc/fortran/trans-common.cc
  c420f80da3e0e794311a9b90c49abce5  gcc/fortran/trans-const.cc
  5644e20cd4aa0324875834a377cf89a4  gcc/fortran/trans-const.h
! 24567c176b72863d35d3ff736d50152b  gcc/fortran/trans-decl.cc
! 2f8a75ecc316d717002ea1f10a4adc5f  gcc/fortran/trans-expr.cc
  50146a04d803fafbc56c31ef04c375c3  gcc/fortran/trans-intrinsic.cc
  9bfdb89867309e2ece2578749f55ece8  gcc/fortran/trans-io.cc
! 66e15c7837007727f9bfd6a98eda3662  gcc/fortran/trans-openmp.cc
  0a23775591d7d3e4fdb603d7bd9febb1  gcc/fortran/trans-stmt.cc
  1b5e4247678ad0441b5b0f26de2ebd4f  gcc/fortran/trans-stmt.h
! e6081de6c57d50b44beba6f37c54a0fe  gcc/fortran/trans-types.cc
  99093042b01c6c4c1ee2c064808bdaa0  gcc/fortran/trans-types.h
  d9d274d783642f6e1749266ab7178b64  gcc/fortran/trans.cc
  29a1230eb3bca55231d07eb0a5c33e86  gcc/fortran/trans.h
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8062,8068 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! ff2d0bee12ed0ed7c7d450ab36f64c77  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
! 843543dd415059321ca3215acbc28d49  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** b9007290e56f8c058df6fc2174bc755b  gcc/te
*** 15464,15469 ****
--- 15464,15471 ----
  b2e8cc3ca2686458232f6ab8399d9dda  gcc/testsuite/g++.dg/cpp0x/constexpr-93169.C
  bc7ccf4287a38e8f82df800db6150879  gcc/testsuite/g++.dg/cpp0x/constexpr-95307.C
  32c39fce8b20cb104d6da1cffca8a530  gcc/testsuite/g++.dg/cpp0x/constexpr-96241.C
+ 629f0389a900c8203177e0396b4ac416  gcc/testsuite/g++.dg/cpp0x/constexpr-97740a.C
+ eb45e434ffc94954a98ab41dfca4430c  gcc/testsuite/g++.dg/cpp0x/constexpr-97740b.C
  6aa74413b4ef74580a0a5da7abf23914  gcc/testsuite/g++.dg/cpp0x/constexpr-98.C
  5f550fa68a208c2d1f3f6d02dca0b709  gcc/testsuite/g++.dg/cpp0x/constexpr-98295.C
  d08d3bdb37be475451a39fd6f72486e9  gcc/testsuite/g++.dg/cpp0x/constexpr-99.C
*************** ee32c4ffc3127b060ad7d2d7978d4c00  gcc/te
*** 19408,19413 ****
--- 19410,19416 ----
  436f3521c73eff29eb95a9935488f619  gcc/testsuite/g++.dg/cpp23/charlit-encoding1.C
  bbd34d70bffdb5659d43e105cc5654f0  gcc/testsuite/g++.dg/cpp23/charset1.C
  fc95968ef690ef967f99e7fc9cf9bb22  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited1.C
+ 289c2847fb294b33f74d735aba8d2b44  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited10.C
  0bfba7997142477c825e6eac0de01c78  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited2.C
  4d439f6f5585d12bf5b651068b33af79  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited3.C
  726edadc3f3d862f8f9d5cdbffdc3430  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C
*************** d1816c76dd387be6d07b1763c88d7e12  gcc/te
*** 19415,19420 ****
--- 19418,19424 ----
  7102bd9f78d9dd5baf868b5867fd00fb  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited6.C
  1eb71fc21e8ad1d9fc8b9177ae3ff8bd  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited7.C
  b70c43fcf5e919517d07b52eba057f7e  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited8.C
+ c281d9c48ed1e62c15bb0a8e9a361e9a  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited9.C
  a5e6981af3e3d461e280ff24cd289402  gcc/testsuite/g++.dg/cpp23/concepts-err1.C
  636155e5662c48788ae52677e22b5249  gcc/testsuite/g++.dg/cpp23/consteval-if1.C
  821ea836b45f7af0a628e6eb278e28f9  gcc/testsuite/g++.dg/cpp23/consteval-if10.C
*************** e4eef3325d652767c4b83b6aed8c24b5  gcc/te
*** 19537,19543 ****
  54f4344e911f644cb2cc34417b933914  gcc/testsuite/g++.dg/cpp23/ext-floating7.C
  bc34c96001d8dfdc3193f88b494b97a1  gcc/testsuite/g++.dg/cpp23/ext-floating8.C
  235a8f3c94e9cc7e9180fe31a3d8352b  gcc/testsuite/g++.dg/cpp23/ext-floating9.C
! 2ea4fd210965e816b517050bf433f476  gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
  b2919427c96be25ae3a72933323c8de1  gcc/testsuite/g++.dg/cpp23/init-stmt1.C
  368308646b02bb36cf22014a0d5bbbdb  gcc/testsuite/g++.dg/cpp23/init-stmt2.C
  906bfd9572fea8013b12e8c215392381  gcc/testsuite/g++.dg/cpp23/label1.C
--- 19541,19547 ----
  54f4344e911f644cb2cc34417b933914  gcc/testsuite/g++.dg/cpp23/ext-floating7.C
  bc34c96001d8dfdc3193f88b494b97a1  gcc/testsuite/g++.dg/cpp23/ext-floating8.C
  235a8f3c94e9cc7e9180fe31a3d8352b  gcc/testsuite/g++.dg/cpp23/ext-floating9.C
! b28d7e361099a6236d154897d0b79dde  gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
  b2919427c96be25ae3a72933323c8de1  gcc/testsuite/g++.dg/cpp23/init-stmt1.C
  368308646b02bb36cf22014a0d5bbbdb  gcc/testsuite/g++.dg/cpp23/init-stmt2.C
  906bfd9572fea8013b12e8c215392381  gcc/testsuite/g++.dg/cpp23/label1.C
*************** d249caf403715041728592d4a4163da2  gcc/te
*** 19590,19596 ****
  33afee43a2089a3e2bccd50e52d8faa6  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr2.C
  54cc8d4706b3ab357055a709b5800258  gcc/testsuite/g++.dg/cpp26/cplusplus.C
  b835b9bb00c8b448e2ac56df5e6cae60  gcc/testsuite/g++.dg/cpp26/enum-conv1.C
! 2cce13f27ba62ba07a652f3231d22f92  gcc/testsuite/g++.dg/cpp26/feat-cxx26.C
  e439504634b8fdea668e10d9fc930c63  gcc/testsuite/g++.dg/cpp26/literals1.C
  24ebebb3be412c0e507595cb8c7458f5  gcc/testsuite/g++.dg/cpp26/literals2.C
  1eebd6cbce6cabc0490fdd8bf706934d  gcc/testsuite/g++.dg/cpp26/name-independent-decl1.C
--- 19594,19600 ----
  33afee43a2089a3e2bccd50e52d8faa6  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr2.C
  54cc8d4706b3ab357055a709b5800258  gcc/testsuite/g++.dg/cpp26/cplusplus.C
  b835b9bb00c8b448e2ac56df5e6cae60  gcc/testsuite/g++.dg/cpp26/enum-conv1.C
! 2f1af7e662c1461f61119390cbb262d3  gcc/testsuite/g++.dg/cpp26/feat-cxx26.C
  e439504634b8fdea668e10d9fc930c63  gcc/testsuite/g++.dg/cpp26/literals1.C
  24ebebb3be412c0e507595cb8c7458f5  gcc/testsuite/g++.dg/cpp26/literals2.C
  1eebd6cbce6cabc0490fdd8bf706934d  gcc/testsuite/g++.dg/cpp26/name-independent-decl1.C
*************** f48f8abadf7267488e7fc07300b15321  gcc/te
*** 19789,19794 ****
--- 19793,19800 ----
  f2bb90a7b95f5ca56f19993dc668ce44  gcc/testsuite/g++.dg/cpp2a/concepts-friend15.C
  78691a3f17811dcdecf47f6df427a97c  gcc/testsuite/g++.dg/cpp2a/concepts-friend16.C
  7ecb03f5905c0460a20f5edf81561f98  gcc/testsuite/g++.dg/cpp2a/concepts-friend17.C
+ b192de319a3668a8a3539d1c8be790c9  gcc/testsuite/g++.dg/cpp2a/concepts-friend18.C
+ 451bfd68952d37940a8f8c9efdf8011b  gcc/testsuite/g++.dg/cpp2a/concepts-friend18a.C
  2fdb3d1a7c3f6a1361b9e8a0700d78f5  gcc/testsuite/g++.dg/cpp2a/concepts-friend2.C
  3f315ba7ac021707fcaa518bf77b73e4  gcc/testsuite/g++.dg/cpp2a/concepts-friend3.C
  ac59cd12de1286d61d74c57276a780ba  gcc/testsuite/g++.dg/cpp2a/concepts-friend4.C
*************** defefd8dd547fd66cedc41bb14383765  gcc/te
*** 20168,20173 ****
--- 20174,20180 ----
  2d6205fea644048201c44086df527c3a  gcc/testsuite/g++.dg/cpp2a/consteval4.C
  34ecadb8994bf3d4c005295e95f6f53d  gcc/testsuite/g++.dg/cpp2a/consteval40.C
  09d61acf831f6fd33b3695f66ce79b1e  gcc/testsuite/g++.dg/cpp2a/consteval41.C
+ 25cda58432ffe21cd15da667f5edfb8d  gcc/testsuite/g++.dg/cpp2a/consteval42.C
  e71633ec506016932dc09c057d98c36c  gcc/testsuite/g++.dg/cpp2a/consteval5.C
  f8b2a0016c59d132f059d57a7638806f  gcc/testsuite/g++.dg/cpp2a/consteval6.C
  6517514915e5a24d0ee38257c46994cc  gcc/testsuite/g++.dg/cpp2a/consteval7.C
*************** f85ef0b99140422d78068ad18a39e03b  gcc/te
*** 56199,56209 ****
  b10686cc9cc745d9a4e579ee285eae2d  gcc/testsuite/gcc.dg/vect/vect-fma-2.c
  f26bda59075ce8ddcb0291dc86a118b3  gcc/testsuite/gcc.dg/vect/vect-fma-3.c
  609ec8572941506ac02bdead3631cf1a  gcc/testsuite/gcc.dg/vect/vect-fmax-1.c
! 8dd709fc543f80ce70588b05e38be7ae  gcc/testsuite/gcc.dg/vect/vect-fmax-2.c
! b913a0ce97e1075ed9731f6e62b860bf  gcc/testsuite/gcc.dg/vect/vect-fmax-3.c
  f7641c61bbf333053e42be5bfa67d8e4  gcc/testsuite/gcc.dg/vect/vect-fmin-1.c
! 33e9990b22cd49f97ec590b283e99e41  gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
! 92e4333ba4e6a6e7852441677e9dd7e1  gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
  ddb5b38696ce380776208fd63305431f  gcc/testsuite/gcc.dg/vect/vect-fncall-mask.c
  e41338bfbaaf9c5f7d3e7394fd0720c0  gcc/testsuite/gcc.dg/vect/vect-fold-1.c
  d19ffdb745a89b901fd8e4ee54b8e7fe  gcc/testsuite/gcc.dg/vect/vect-gather-1.c
--- 56206,56216 ----
  b10686cc9cc745d9a4e579ee285eae2d  gcc/testsuite/gcc.dg/vect/vect-fma-2.c
  f26bda59075ce8ddcb0291dc86a118b3  gcc/testsuite/gcc.dg/vect/vect-fma-3.c
  609ec8572941506ac02bdead3631cf1a  gcc/testsuite/gcc.dg/vect/vect-fmax-1.c
! ff69a9e19928b3a1de48ce1b898d4a45  gcc/testsuite/gcc.dg/vect/vect-fmax-2.c
! d6b11f32049737083a9d8a816c7de6db  gcc/testsuite/gcc.dg/vect/vect-fmax-3.c
  f7641c61bbf333053e42be5bfa67d8e4  gcc/testsuite/gcc.dg/vect/vect-fmin-1.c
! 0cde09c690b3ca2b483cb6ce9cc4115e  gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
! c8add09e1cb63057bdcddaad5063ed57  gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
  ddb5b38696ce380776208fd63305431f  gcc/testsuite/gcc.dg/vect/vect-fncall-mask.c
  e41338bfbaaf9c5f7d3e7394fd0720c0  gcc/testsuite/gcc.dg/vect/vect-fold-1.c
  d19ffdb745a89b901fd8e4ee54b8e7fe  gcc/testsuite/gcc.dg/vect/vect-gather-1.c
*************** afe21b866be9162c6b654dc6771e6ead  gcc/te
*** 98760,98767 ****
--- 98767,98776 ----
  1dd53d463caf1e16e47d0fe9cbf2309f  gcc/testsuite/gfortran.dg/pr102366.f90
  fc5031b16be6a0dc4152f151793f4acb  gcc/testsuite/gfortran.dg/pr102458.f90
  cbd40bc334c217d37c198b1f27373810  gcc/testsuite/gfortran.dg/pr102458b.f90
+ 44bc627bf6c28a64567fdb75fe688fdc  gcc/testsuite/gfortran.dg/pr102459.f90
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
  107263fe1c86ee042c855774a2b8e242  gcc/testsuite/gfortran.dg/pr102532.f90
+ 4efde3b7d107b33c9c8792e23b683d17  gcc/testsuite/gfortran.dg/pr102596.f90
  c0ae1c78c693e1256c471360998b7568  gcc/testsuite/gfortran.dg/pr102597.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
*************** e338cfba2f466abedf9af92b52cd6fb3  gcc/te
*** 99377,99382 ****
--- 99386,99392 ----
  b6ff04901e3aee18765a74bf65804e38  gcc/testsuite/gfortran.dg/pr82253.f90
  344be7c0602202457870166d368441e0  gcc/testsuite/gfortran.dg/pr82314.f90
  7f04eca318ca64e1442ceabc31fab9fb  gcc/testsuite/gfortran.dg/pr82397.f
+ 9f2daedbf44298499832b2b6d72eb79f  gcc/testsuite/gfortran.dg/pr82721.f90
  5e9eb92684de357b4c23a7f04959db82  gcc/testsuite/gfortran.dg/pr82774.f90
  616772c135ee9b14c410dcd23fdbc3e4  gcc/testsuite/gfortran.dg/pr82973.f90
  0a918cecf6f52a31004b77728cb30038  gcc/testsuite/gfortran.dg/pr83113.f90
*************** fd7937a762c5733d3533bba0d9b05a6e  gcc/te
*** 99391,99396 ****
--- 99401,99407 ----
  95b2ba5b10167fedc1a075877a7a103b  gcc/testsuite/gfortran.dg/pr84088.f90
  ee7b5aa850a8be8a1ed15f2fcdca347a  gcc/testsuite/gfortran.dg/pr84117.f90
  c41bc69547a048a19ccb1adc57ce3bca  gcc/testsuite/gfortran.dg/pr84155.f90
+ e6d08fa65e9eb602b71f0e6a8b44a739  gcc/testsuite/gfortran.dg/pr84245.f90
  12af81a97aa86950b63e458f115e45c9  gcc/testsuite/gfortran.dg/pr84523.f90
  6d593814cbde3b81eb21e9501a48bac2  gcc/testsuite/gfortran.dg/pr84565.f90
  4cf62650961664b3e4bce16d177b5929  gcc/testsuite/gfortran.dg/pr84674.f90
*************** a6b1d851f4c5b6cfffa8f56c8f9cd150  gcc/te
*** 99619,99624 ****
--- 99630,99636 ----
  81355955ad98611710451ef6e76d9dbe  gcc/testsuite/gfortran.dg/pr95090.f90
  10a1157f7a9fa8f2042a563c98a25914  gcc/testsuite/gfortran.dg/pr95091.f90
  7d3e3457f90590b31740ffdd3a4866a3  gcc/testsuite/gfortran.dg/pr95104.f90
+ e11cb19990efd60513bbac52ee105f02  gcc/testsuite/gfortran.dg/pr95338.f90
  66c58770643ed3f1944820fa6790cc27  gcc/testsuite/gfortran.dg/pr95340.f90
  395135621c98fea610c5f2b17feb7637  gcc/testsuite/gfortran.dg/pr95342.f90
  b9d5894d240b89777d50d53e0cd60929  gcc/testsuite/gfortran.dg/pr95373_1.f90
*************** ac524c67dbf5c0b6588328a02f46a124  gcc/te
*** 99668,99673 ****
--- 99680,99686 ----
  4cd7e1edd1f016be3c9016b1817d703e  gcc/testsuite/gfortran.dg/pr96038.f90
  e6acc3eb976952fc47981d6ab4ed7205  gcc/testsuite/gfortran.dg/pr96085.f90
  45d800261f64da91bf2398a00691d7c4  gcc/testsuite/gfortran.dg/pr96086.f90
+ 0e95668039fa9312c394dbe702dc78a0  gcc/testsuite/gfortran.dg/pr96087.f90
  07cb4ed26cdce5312951d4e23c0ede15  gcc/testsuite/gfortran.dg/pr96099_1.f90
  6ed2b45ec17b4aeb641142e2799cfd89  gcc/testsuite/gfortran.dg/pr96099_2.f90
  43b9b0a65aabf3911bc6a2d49e46f640  gcc/testsuite/gfortran.dg/pr96102.f90
*************** f8a43d7dd54caabde100374f7144dfc3  gcc/te
*** 104958,104963 ****
--- 104971,104978 ----
  ab899fc6f72925f8084209d5187582d5  gcc/testsuite/gnat.dg/opt106_pkg1.ads
  acc696967fd0d2302cfab5304ee3a970  gcc/testsuite/gnat.dg/opt106_pkg2.adb
  e4a127b46129811de1774562e29fb8fc  gcc/testsuite/gnat.dg/opt106_pkg2.ads
+ 9d150b19ff3791d45b239fbe539ca3ec  gcc/testsuite/gnat.dg/opt107.adb
+ b639e95e2056957733aa779c0c757061  gcc/testsuite/gnat.dg/opt107_pkg.ads
  5d50fb38b1ab84c39760906cb103c522  gcc/testsuite/gnat.dg/opt10_pkg.ads
  603264d4afdd2fd2174ea9c4cf4653ed  gcc/testsuite/gnat.dg/opt11.adb
  53160585b3a5d820b653e1e0d5f14c75  gcc/testsuite/gnat.dg/opt11.ads
*************** a9a57c1e6ef21dcf260929f34c5c8aac  gcc/tr
*** 110622,110628 ****
  394662362ab7d17b000ab838d7bda85c  gcc/tree-ssa-dce.h
  5fb557e8777afa7cdad5a08a17b37cdc  gcc/tree-ssa-dom.cc
  c9368eed42c8261bad4b65accae4859c  gcc/tree-ssa-dom.h
! 74eff09dfd5603b7844ba66a97eb55cb  gcc/tree-ssa-dse.cc
  310f6675fc42485a28214ba25f193e4c  gcc/tree-ssa-dse.h
  eb50801cc8f65531f98214d98abdf0f7  gcc/tree-ssa-forwprop.cc
  48767dda496173441bc33fb424a8582a  gcc/tree-ssa-ifcombine.cc
--- 110637,110643 ----
  394662362ab7d17b000ab838d7bda85c  gcc/tree-ssa-dce.h
  5fb557e8777afa7cdad5a08a17b37cdc  gcc/tree-ssa-dom.cc
  c9368eed42c8261bad4b65accae4859c  gcc/tree-ssa-dom.h
! c369eacbed5c4c55970cbab9e45becba  gcc/tree-ssa-dse.cc
  310f6675fc42485a28214ba25f193e4c  gcc/tree-ssa-dse.h
  eb50801cc8f65531f98214d98abdf0f7  gcc/tree-ssa-forwprop.cc
  48767dda496173441bc33fb424a8582a  gcc/tree-ssa-ifcombine.cc
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 119586,119592 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! a359c17cbd64383a3c04f16951757c75  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  ea86ef6e739ee81b963e6f1f456ec887  libgomp/Makefile.am
  175cf5d896d110ed86d9cd72e1565b83  libgomp/Makefile.in
--- 119601,119607 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 45fade51401c3d5800128b574ff3fe3f  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  ea86ef6e739ee81b963e6f1f456ec887  libgomp/Makefile.am
  175cf5d896d110ed86d9cd72e1565b83  libgomp/Makefile.in
*************** b018601a4e35da4037b1e04dfdb00b98  libgom
*** 121122,121127 ****
--- 121137,121143 ----
  10f51539240fd456f44686f1368a9ebb  libgomp/testsuite/libgomp.fortran/pointer1.f90
  ea1e8a0a21d27e85d504f82d979196a3  libgomp/testsuite/libgomp.fortran/pointer2.f90
  5a38dd4751898fd9556aa9ed131fad76  libgomp/testsuite/libgomp.fortran/pr100981-2.f90
+ bd4d373b7453a268a0da695bf8bf8f52  libgomp/testsuite/libgomp.fortran/pr120286.f90
  1e7de6c9f1376e7662fc088ab6ec5e64  libgomp/testsuite/libgomp.fortran/pr25162.f
  150790c35955da1ca1b74284c2553f34  libgomp/testsuite/libgomp.fortran/pr25219.f90
  a83bd562c0d1b609f2a71de244b3a1a0  libgomp/testsuite/libgomp.fortran/pr27395-1.f90
*************** d828e38384c506bf5e7d5a3c02725a37  libssp
*** 123937,123943 ****
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! b7c602ba24f0273c0afa0f48c0f437ac  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 123953,123959 ----
  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
*************** afef6bb168d2a386d2dc4aaf2937c1d1  libstd
*** 124689,124695 ****
  59fb2d3661995c86a3996a5d1af055af  libstdc++-v3/include/bits/range_access.h
  b320b8e354287c4e241d67f2b75eff17  libstdc++-v3/include/bits/ranges_algo.h
  6cb193dd721dcfc25fcaee8dfea5e5fe  libstdc++-v3/include/bits/ranges_algobase.h
! 8acf5ee995f9787021a67b3f8d9c591b  libstdc++-v3/include/bits/ranges_base.h
  2d8db914447b3a437d4c8f60de452767  libstdc++-v3/include/bits/ranges_cmp.h
  66406b0b277e3b6df527a052145d6990  libstdc++-v3/include/bits/ranges_uninitialized.h
  6b723b82f7c41537c2bba4766e5d0639  libstdc++-v3/include/bits/ranges_util.h
--- 124705,124711 ----
  59fb2d3661995c86a3996a5d1af055af  libstdc++-v3/include/bits/range_access.h
  b320b8e354287c4e241d67f2b75eff17  libstdc++-v3/include/bits/ranges_algo.h
  6cb193dd721dcfc25fcaee8dfea5e5fe  libstdc++-v3/include/bits/ranges_algobase.h
! 0a9e74273ab544cc58ee11a1367150d2  libstdc++-v3/include/bits/ranges_base.h
  2d8db914447b3a437d4c8f60de452767  libstdc++-v3/include/bits/ranges_cmp.h
  66406b0b277e3b6df527a052145d6990  libstdc++-v3/include/bits/ranges_uninitialized.h
  6b723b82f7c41537c2bba4766e5d0639  libstdc++-v3/include/bits/ranges_util.h
*************** c546cc775c2f4aacb2ab246105d49be4  libstd
*** 130153,130159 ****
  9f4e16d24466d0905c256e141d9b7e91  libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
  2c61f978dca854377a1f045080bfc407  libstdc++-v3/testsuite/24_iterators/common_iterator/101527.cc
  de5e3bacb355ac6331ac4ae3d0d7e069  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
! c78691d1ff6bc1b3ae254334b058b5ca  libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
  3fcc24ac9868ef19598ff1bf296928bb  libstdc++-v3/testsuite/24_iterators/const_iterator/112490.cc
  514f5f79e39424bc555c834fdf742bab  libstdc++-v3/testsuite/24_iterators/container_access.cc
  0783d01d06994d30f114de931fab9034  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
--- 130169,130175 ----
  9f4e16d24466d0905c256e141d9b7e91  libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
  2c61f978dca854377a1f045080bfc407  libstdc++-v3/testsuite/24_iterators/common_iterator/101527.cc
  de5e3bacb355ac6331ac4ae3d0d7e069  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
! 2f1514de9134e83dc1048a4c719c67f2  libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
  3fcc24ac9868ef19598ff1bf296928bb  libstdc++-v3/testsuite/24_iterators/const_iterator/112490.cc
  514f5f79e39424bc555c834fdf742bab  libstdc++-v3/testsuite/24_iterators/container_access.cc
  0783d01d06994d30f114de931fab9034  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
diff -Nrcpad gcc-14-20260327/gcc/ChangeLog gcc-14-20260403/gcc/ChangeLog
*** gcc-14-20260327/gcc/ChangeLog	Fri Mar 27 22:32:05 2026
--- gcc-14-20260403/gcc/ChangeLog	Fri Apr  3 22:32:06 2026
***************
*** 1,3 ****
--- 1,15 ----
+ 2026-04-01  Wu Haotian  <rigoligo03@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-03-31  Wu Haotian  <rigoligo03@gmail.com>
+ 
+ 	* config.gcc: removed linux.h and t-linux for loongarch*-*-elf* targets
+ 
+ 2026-03-31  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-ssa-dse.cc (compute_trims): Bail out if ref->size is not
+ 	byte aligned either.
+ 
  2026-03-25  Richard Biener  <rguenther@suse.de>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260327/gcc/DATESTAMP gcc-14-20260403/gcc/DATESTAMP
*** gcc-14-20260327/gcc/DATESTAMP	Fri Mar 27 22:32:05 2026
--- gcc-14-20260403/gcc/DATESTAMP	Fri Apr  3 22:32:06 2026
***************
*** 1 ****
! 20260327
--- 1 ----
! 20260403
diff -Nrcpad gcc-14-20260327/gcc/c-family/ChangeLog gcc-14-20260403/gcc/c-family/ChangeLog
*** gcc-14-20260327/gcc/c-family/ChangeLog	Fri Mar 27 22:32:06 2026
--- gcc-14-20260403/gcc/c-family/ChangeLog	Fri Apr  3 22:32:07 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-03-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-02  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* c-cppbuiltin.cc (c_cpp_builtins): Bump __cpp_deduction_guides to
+ 	202207L for C++23 and later.
+ 
  2026-03-20  Richard Biener  <rguenther@suse.de>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260327/gcc/c-family/c-cppbuiltin.cc gcc-14-20260403/gcc/c-family/c-cppbuiltin.cc
*** gcc-14-20260327/gcc/c-family/c-cppbuiltin.cc	Fri Mar 27 22:32:06 2026
--- gcc-14-20260403/gcc/c-family/c-cppbuiltin.cc	Fri Apr  3 22:32:07 2026
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1052,1058 ****
  	  cpp_define (pfile, "__cpp_conditional_explicit=201806L");
  	  cpp_define (pfile, "__cpp_consteval=202211L");
  	  cpp_define (pfile, "__cpp_constinit=201907L");
! 	  cpp_define (pfile, "__cpp_deduction_guides=201907L");
  	  cpp_define (pfile, "__cpp_nontype_template_args=201911L");
  	  cpp_define (pfile, "__cpp_nontype_template_parameter_class=201806L");
  	  cpp_define (pfile, "__cpp_impl_destroying_delete=201806L");
--- 1052,1059 ----
  	  cpp_define (pfile, "__cpp_conditional_explicit=201806L");
  	  cpp_define (pfile, "__cpp_consteval=202211L");
  	  cpp_define (pfile, "__cpp_constinit=201907L");
! 	  if (cxx_dialect <= cxx20)
! 	    cpp_define (pfile, "__cpp_deduction_guides=201907L");
  	  cpp_define (pfile, "__cpp_nontype_template_args=201911L");
  	  cpp_define (pfile, "__cpp_nontype_template_parameter_class=201806L");
  	  cpp_define (pfile, "__cpp_impl_destroying_delete=201806L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1069,1074 ****
--- 1070,1076 ----
  	  cpp_define (pfile, "__cpp_auto_cast=202110L");
  	  if (cxx_dialect <= cxx23)
  	    cpp_define (pfile, "__cpp_constexpr=202211L");
+ 	  cpp_define (pfile, "__cpp_deduction_guides=202207L");
  	  cpp_define (pfile, "__cpp_multidimensional_subscript=202211L");
  	  cpp_define (pfile, "__cpp_named_character_escapes=202207L");
  	  cpp_define (pfile, "__cpp_static_call_operator=202207L");
diff -Nrcpad gcc-14-20260327/gcc/config.gcc gcc-14-20260403/gcc/config.gcc
*** gcc-14-20260327/gcc/config.gcc	Fri Mar 27 22:32:06 2026
--- gcc-14-20260403/gcc/config.gcc	Fri Apr  3 22:32:07 2026
*************** loongarch*-*-linux*)
*** 2566,2573 ****
  
  loongarch*-*-elf*)
  	tm_file="elfos.h newlib-stdint.h ${tm_file}"
! 	tm_file="${tm_file} loongarch/elf.h loongarch/linux.h loongarch/loongarch-driver.h"
! 	tmake_file="${tmake_file} loongarch/t-multilib loongarch/t-linux"
  	gnu_ld=yes
  	gas=yes
  
--- 2566,2573 ----
  
  loongarch*-*-elf*)
  	tm_file="elfos.h newlib-stdint.h ${tm_file}"
! 	tm_file="${tm_file} loongarch/elf.h loongarch/loongarch-driver.h"
! 	tmake_file="${tmake_file} loongarch/t-multilib"
  	gnu_ld=yes
  	gas=yes
  
diff -Nrcpad gcc-14-20260327/gcc/cp/ChangeLog gcc-14-20260403/gcc/cp/ChangeLog
*** gcc-14-20260327/gcc/cp/ChangeLog	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/cp/ChangeLog	Fri Apr  3 22:32:08 2026
***************
*** 1,3 ****
--- 1,41 ----
+ 2026-03-30  Daniele Sahebi  <daniele@mkryss.me>
+ 
+ 	Backported from master:
+ 	2025-11-22  Daniele Sahebi  <daniele@mkryss.me>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/122658
+ 	* call.cc (build_over_call): Don't call build_cplus_new in
+ 	template declarations.
+ 
+ 2026-03-30  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-12-18  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 		    Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122070
+ 	* pt.cc (type_targs_deducible_from): Fall back to
+ 	TYPE_TEMPLATE_INFO when TYPE_TEMPLATE_INFO_MAYBE_ALIAS is NULL.
+ 
+ 2026-03-30  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-12-23  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 
+ 	PR c++/122550
+ 	* decl.cc (member_like_constrained_friend_p): Check that the
+ 	friend's enclosing class is an implicit instantiation.
+ 
+ 2026-03-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-09-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/97740
+ 	* pt.cc (tsubst_expr) <case COMPONENT_REF>: Don't check access
+ 	when the given member is already a FIELD_DECL.
+ 
  2026-03-17  Marek Polacek  <polacek@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260327/gcc/cp/call.cc gcc-14-20260403/gcc/cp/call.cc
*** gcc-14-20260327/gcc/cp/call.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/cp/call.cc	Fri Apr  3 22:32:08 2026
*************** build_over_call (struct z_candidate *can
*** 9940,9957 ****
  	current_function_returns_abnormally = 1;
        if (immediate_invocation_p (fn))
  	{
! 	  tree obj_arg = NULL_TREE, exprimm = expr;
  	  if (DECL_CONSTRUCTOR_P (fn))
  	    obj_arg = first_arg;
- 	  if (obj_arg
- 	      && is_dummy_object (obj_arg)
- 	      && !type_dependent_expression_p (obj_arg))
- 	    {
- 	      exprimm = build_cplus_new (DECL_CONTEXT (fn), expr, complain);
- 	      obj_arg = NULL_TREE;
- 	    }
  	  /* Look through *(const T *)&obj.  */
! 	  else if (obj_arg && INDIRECT_REF_P (obj_arg))
  	    {
  	      tree addr = TREE_OPERAND (obj_arg, 0);
  	      STRIP_NOPS (addr);
--- 9940,9950 ----
  	current_function_returns_abnormally = 1;
        if (immediate_invocation_p (fn))
  	{
! 	  tree obj_arg = NULL_TREE;
  	  if (DECL_CONSTRUCTOR_P (fn))
  	    obj_arg = first_arg;
  	  /* Look through *(const T *)&obj.  */
! 	  if (obj_arg && INDIRECT_REF_P (obj_arg))
  	    {
  	      tree addr = TREE_OPERAND (obj_arg, 0);
  	      STRIP_NOPS (addr);
*************** build_over_call (struct z_candidate *can
*** 9963,9969 ****
  		    obj_arg = TREE_OPERAND (addr, 0);
  		}
  	    }
! 	  fold_non_dependent_expr (exprimm, complain,
  				   /*manifestly_const_eval=*/true,
  				   obj_arg);
  	}
--- 9956,9962 ----
  		    obj_arg = TREE_OPERAND (addr, 0);
  		}
  	    }
! 	  fold_non_dependent_expr (expr, complain,
  				   /*manifestly_const_eval=*/true,
  				   obj_arg);
  	}
diff -Nrcpad gcc-14-20260327/gcc/cp/decl.cc gcc-14-20260403/gcc/cp/decl.cc
*** gcc-14-20260327/gcc/cp/decl.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/cp/decl.cc	Fri Apr  3 22:32:08 2026
*************** member_like_constrained_friend_p (tree d
*** 992,997 ****
--- 992,998 ----
  	  && DECL_UNIQUE_FRIEND_P (decl)
  	  && DECL_FRIEND_CONTEXT (decl)
  	  && get_constraints (decl)
+ 	  && CLASSTYPE_IMPLICIT_INSTANTIATION (DECL_FRIEND_CONTEXT (decl))
  	  && (!DECL_TEMPLATE_INFO (decl)
  	      || !PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (decl))
  	      || (uses_outer_template_parms_in_constraints
diff -Nrcpad gcc-14-20260327/gcc/cp/pt.cc gcc-14-20260403/gcc/cp/pt.cc
*** gcc-14-20260327/gcc/cp/pt.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/cp/pt.cc	Fri Apr  3 22:32:08 2026
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 21279,21286 ****
--- 21279,21292 ----
  	  }
  	else if (TREE_CODE (member) == FIELD_DECL)
  	  {
+ 	    /* Assume access of this FIELD_DECL has already been checked; we
+ 	       don't recheck it to avoid bogus access errors when substituting
+ 	       a reduced constant initializer (97740).  */
+ 	    gcc_checking_assert (TREE_CODE (TREE_OPERAND (t, 1)) == FIELD_DECL);
+ 	    push_deferring_access_checks (dk_deferred);
  	    r = finish_non_static_data_member (member, object, NULL_TREE,
  					       complain);
+ 	    pop_deferring_access_checks ();
  	    if (REF_PARENTHESIZED_P (t))
  	      r = force_paren_expr (r);
  	    RETURN (r);
*************** type_targs_deducible_from (tree tmpl, tr
*** 30733,30739 ****
  	 per alias_ctad_tweaks.  */
        tparms = INNERMOST_TEMPLATE_PARMS (TREE_PURPOSE (tmpl));
        ttype = TREE_VALUE (tmpl);
!       tmpl = TI_TEMPLATE (TYPE_TEMPLATE_INFO_MAYBE_ALIAS (ttype));
      }
  
    int len = TREE_VEC_LENGTH (tparms);
--- 30739,30749 ----
  	 per alias_ctad_tweaks.  */
        tparms = INNERMOST_TEMPLATE_PARMS (TREE_PURPOSE (tmpl));
        ttype = TREE_VALUE (tmpl);
!       tree ti = TYPE_TEMPLATE_INFO_MAYBE_ALIAS (ttype);
!       if (!ti)
! 	/* TTYPE is a typedef to a template-id.  */
! 	ti = TYPE_TEMPLATE_INFO (ttype);
!       tmpl = TI_TEMPLATE (ti);
      }
  
    int len = TREE_VEC_LENGTH (tparms);
diff -Nrcpad gcc-14-20260327/gcc/fortran/ChangeLog gcc-14-20260403/gcc/fortran/ChangeLog
*** gcc-14-20260327/gcc/fortran/ChangeLog	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/fortran/ChangeLog	Fri Apr  3 22:32:08 2026
***************
*** 1,3 ****
--- 1,72 ----
+ 2026-04-02  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102596
+ 	* trans-openmp.cc (gfc_omp_clause_default_ctor): Only require an
+ 	outer reference when the constructor path actually uses it.
+ 
+ 2026-04-02  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/120286
+ 	* trans-openmp.cc (gfc_is_class_pointer_type): New helper.
+ 	(gfc_omp_clause_copy_ctor): Unwrap saved descriptors before
+ 	deciding whether privatization should preserve only pointer
+ 	association.  Handle scalar class pointers on that path too.
+ 	(gfc_omp_clause_dtor): Likewise.
+ 
+ 2026-03-30  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/95338
+ 	* trans-types.cc (gfc_get_entry_result_type): New helper to use the
+ 	ABI return type for mixed ENTRY union fields.
+ 	(gfc_get_mixed_entry_union): Use it for each entry result field.
+ 
+ 2026-03-29  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102459
+ 	* trans-openmp.cc (gfc_trans_omp_clauses): Choose the scalar
+ 	reference path from the full expression rank rather than the first
+ 	array reference.
+ 	(gfc_trans_omp_depobj): Likewise.
+ 
+ 2026-03-29  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-12  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/82721
+ 	* decl.cc (discard_pending_charlen): New helper.
+ 	(build_sym): Discard unattached CHARACTER length nodes when
+ 	gfc_add_type rejects the declaration.
+ 
+ 2026-03-29  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-01-23  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/96087
+ 	* trans-decl.cc (gfc_get_symbol_decl): If a dummy is missing a
+ 	backend decl, it is likely that it has come from a module proc
+ 	interface. Look for the formal symbol by name in the containing
+ 	proc and use its backend decl.
+ 	* trans-expr.cc (gfc_apply_interface_mapping_to_expr): For the
+ 	same reason, match the name, rather than the symbol address to
+ 	perform the mapping.
+ 
+ 2026-03-28  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-28  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/84245
+ 	* match.cc (gfc_match_select_type): Free the temporary namespace
+ 	only on MATCH_NO. Return immediately on MATCH_ERROR.
+ 
  2026-03-25  Paul Thomas  <pault@gcc.gnu.org>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260327/gcc/fortran/decl.cc gcc-14-20260403/gcc/fortran/decl.cc
*** gcc-14-20260327/gcc/fortran/decl.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/fortran/decl.cc	Fri Apr  3 22:32:08 2026
*************** static gfc_expr *saved_kind_expr = NULL;
*** 116,121 ****
--- 116,135 ----
  static gfc_actual_arglist *decl_type_param_list;
  static gfc_actual_arglist *type_param_spec_list;
  
+ /* Drop an unattached gfc_charlen node from the current namespace.  This is
+    used when declaration processing created a length node for a symbol that is
+    rejected before the node is attached to any surviving symbol.  */
+ static void
+ discard_pending_charlen (gfc_charlen *cl)
+ {
+   if (!cl || !gfc_current_ns || gfc_current_ns->cl_list != cl)
+     return;
+ 
+   gfc_current_ns->cl_list = cl->next;
+   gfc_free_expr (cl->length);
+   free (cl);
+ }
+ 
  /********************* DATA statement subroutines *********************/
  
  static bool in_match_data = false;
*************** build_sym (const char *name, int elem, g
*** 1777,1783 ****
        && (sym->attr.implicit_type == 0
  	  || !gfc_compare_types (&sym->ts, &current_ts))
        && !gfc_add_type (sym, &current_ts, var_locus))
!     return false;
  
    if (sym->ts.type == BT_CHARACTER)
      {
--- 1791,1810 ----
        && (sym->attr.implicit_type == 0
  	  || !gfc_compare_types (&sym->ts, &current_ts))
        && !gfc_add_type (sym, &current_ts, var_locus))
!     {
!       /* Duplicate-type rejection can leave a fresh CHARACTER length node on
! 	 the namespace list before it is attached to any surviving symbol.
! 	 Drop only that unattached node; shared constant charlen nodes are
! 	 already reachable from earlier declarations.  PR82721.  */
!       if (current_ts.type == BT_CHARACTER && cl && elem == 1)
! 	{
! 	  discard_pending_charlen (cl);
! 	  gfc_clear_ts (&current_ts);
! 	}
!       else if (current_ts.type == BT_CHARACTER && cl && cl != current_ts.u.cl)
! 	discard_pending_charlen (cl);
!       return false;
!     }
  
    if (sym->ts.type == BT_CHARACTER)
      {
diff -Nrcpad gcc-14-20260327/gcc/fortran/match.cc gcc-14-20260403/gcc/fortran/match.cc
*** gcc-14-20260327/gcc/fortran/match.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/fortran/match.cc	Fri Apr  3 22:32:08 2026
*************** gfc_match_select_type (void)
*** 6668,6679 ****
    else
      {
        m = gfc_match (" %e ", &expr1);
!       if (m != MATCH_YES)
  	{
  	  std::swap (ns, gfc_current_ns);
  	  gfc_free_namespace (ns);
  	  return m;
  	}
      }
  
    m = gfc_match (" )%t");
--- 6668,6684 ----
    else
      {
        m = gfc_match (" %e ", &expr1);
!       if (m == MATCH_NO)
  	{
  	  std::swap (ns, gfc_current_ns);
  	  gfc_free_namespace (ns);
  	  return m;
  	}
+       /* On MATCH_ERROR, the temporary block namespace may already contain
+ 	 broken state from the failed expression match.  Avoid freeing it
+ 	 through the normal rollback path.  */
+       else if (m == MATCH_ERROR)
+ 	return m;
      }
  
    m = gfc_match (" )%t");
diff -Nrcpad gcc-14-20260327/gcc/fortran/trans-decl.cc gcc-14-20260403/gcc/fortran/trans-decl.cc
*** gcc-14-20260327/gcc/fortran/trans-decl.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/fortran/trans-decl.cc	Fri Apr  3 22:32:08 2026
*************** gfc_get_symbol_decl (gfc_symbol * sym)
*** 1629,1634 ****
--- 1629,1649 ----
  	    sym->backend_decl = DECL_CHAIN (sym->backend_decl);
  	}
  
+       /* Automatic array indices in module procedures need the backend_decl
+ 	 to be extracted from the procedure formal arglist.  */
+       if (sym->attr.dummy && !sym->backend_decl)
+ 	{
+ 	  gfc_formal_arglist *f;
+ 	  for (f = sym->ns->proc_name->formal; f; f = f->next)
+ 	    {
+ 	      gfc_symbol *fsym = f->sym;
+ 	      if (strcmp (sym->name, fsym->name))
+ 		continue;
+ 	      sym->backend_decl = fsym->backend_decl;
+ 	      break;
+ 	     }
+ 	}
+ 
        /* Dummy variables should already have been created.  */
        gcc_assert (sym->backend_decl);
  
diff -Nrcpad gcc-14-20260327/gcc/fortran/trans-expr.cc gcc-14-20260403/gcc/fortran/trans-expr.cc
*** gcc-14-20260327/gcc/fortran/trans-expr.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/fortran/trans-expr.cc	Fri Apr  3 22:32:08 2026
*************** gfc_apply_interface_mapping_to_expr (gfc
*** 4940,4946 ****
    /* TODO Find out why the condition on expr->symtree had to be moved into
       the loop rather than being outside it, as originally.  */
    for (sym = mapping->syms; sym; sym = sym->next)
!     if (expr->symtree && sym->old == expr->symtree->n.sym)
        {
  	if (sym->new_sym->n.sym->backend_decl)
  	  expr->symtree = sym->new_sym;
--- 4940,4946 ----
    /* TODO Find out why the condition on expr->symtree had to be moved into
       the loop rather than being outside it, as originally.  */
    for (sym = mapping->syms; sym; sym = sym->next)
!     if (expr->symtree && !strcmp (sym->old->name, expr->symtree->n.sym->name))
        {
  	if (sym->new_sym->n.sym->backend_decl)
  	  expr->symtree = sym->new_sym;
diff -Nrcpad gcc-14-20260327/gcc/fortran/trans-openmp.cc gcc-14-20260403/gcc/fortran/trans-openmp.cc
*** gcc-14-20260327/gcc/fortran/trans-openmp.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/fortran/trans-openmp.cc	Fri Apr  3 22:32:08 2026
*************** gfc_has_alloc_comps (tree type, tree dec
*** 415,420 ****
--- 415,444 ----
    return false;
  }
  
+ /* Return true if TYPE is a class container for a POINTER entity.  */
+ 
+ static bool
+ gfc_is_class_pointer_type (tree type)
+ {
+   tree name;
+   const char *s;
+ 
+   if (POINTER_TYPE_P (type))
+     type = TREE_TYPE (type);
+ 
+   if (!GFC_CLASS_TYPE_P (type))
+     return false;
+ 
+   name = TYPE_NAME (type);
+   if (name && TREE_CODE (name) == TYPE_DECL)
+     name = DECL_NAME (name);
+   if (!name)
+     return false;
+ 
+   s = IDENTIFIER_POINTER (name);
+   return startswith (s, "__class_") && s[strlen (s) - 1] == 'p';
+ }
+ 
  /* Return true if TYPE is polymorphic but not with pointer attribute.  */
  
  static bool
*************** gfc_omp_clause_default_ctor (tree clause
*** 764,770 ****
        return NULL_TREE;
      }
  
!   gcc_assert (outer != NULL_TREE);
  
    /* Allocatable arrays and scalars in PRIVATE clauses need to be set to
       "not currently allocated" allocation status if outer
--- 788,796 ----
        return NULL_TREE;
      }
  
!   gcc_assert (outer != NULL_TREE
! 	      || (!GFC_DESCRIPTOR_TYPE_P (type)
! 		  && !gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))));
  
    /* Allocatable arrays and scalars in PRIVATE clauses need to be set to
       "not currently allocated" allocation status if outer
*************** gfc_omp_clause_copy_ctor (tree clause, t
*** 854,875 ****
  {
    tree type = TREE_TYPE (dest), ptr, size, call;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
    tree cond, then_b, else_b;
    stmtblock_t block, cond_block;
  
    gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_FIRSTPRIVATE
  	      || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LINEAR);
  
!   /* Privatize pointer, only; cf. gfc_omp_predetermined_sharing. */
!   if (DECL_P (OMP_CLAUSE_DECL (clause))
!       && GFC_DECL_ASSOCIATE_VAR_P (OMP_CLAUSE_DECL (clause)))
!     return build2 (MODIFY_EXPR, TREE_TYPE (dest), dest, src);
  
!   if (DECL_ARTIFICIAL (OMP_CLAUSE_DECL (clause))
!       && DECL_LANG_SPECIFIC (OMP_CLAUSE_DECL (clause))
!       && GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)))
!     decl_type
!       = TREE_TYPE (GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)));
  
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
--- 880,908 ----
  {
    tree type = TREE_TYPE (dest), ptr, size, call;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
+   tree orig_decl = OMP_CLAUSE_DECL (clause);
    tree cond, then_b, else_b;
    stmtblock_t block, cond_block;
  
    gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_FIRSTPRIVATE
  	      || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LINEAR);
  
!   if (DECL_ARTIFICIAL (orig_decl)
!       && DECL_LANG_SPECIFIC (orig_decl)
!       && GFC_DECL_SAVED_DESCRIPTOR (orig_decl))
!     {
!       orig_decl = GFC_DECL_SAVED_DESCRIPTOR (orig_decl);
!       decl_type = TREE_TYPE (orig_decl);
!     }
  
!   /* Privatize pointer association only; cf. gfc_omp_predetermined_sharing.
!      This includes scalar class pointers, whose tree type is still the class
!      record even though the Fortran entity has POINTER semantics.  */
!   if (DECL_P (orig_decl)
!       && (GFC_DECL_ASSOCIATE_VAR_P (orig_decl)
! 	  || GFC_DECL_GET_SCALAR_POINTER (orig_decl)
! 	  || gfc_is_class_pointer_type (decl_type)))
!     return build2 (MODIFY_EXPR, TREE_TYPE (dest), dest, src);
  
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
*************** gfc_omp_clause_dtor (tree clause, tree d
*** 1377,1393 ****
  {
    tree type = TREE_TYPE (decl), tem;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
  
!   /* Only pointer was privatized; cf. gfc_omp_clause_copy_ctor. */
!   if (DECL_P (OMP_CLAUSE_DECL (clause))
!       && GFC_DECL_ASSOCIATE_VAR_P (OMP_CLAUSE_DECL (clause)))
      return NULL_TREE;
  
-   if (DECL_ARTIFICIAL (OMP_CLAUSE_DECL (clause))
-       && DECL_LANG_SPECIFIC (OMP_CLAUSE_DECL (clause))
-       && GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)))
-     decl_type
- 	= TREE_TYPE (GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)));
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
        if (POINTER_TYPE_P (decl_type))
--- 1410,1433 ----
  {
    tree type = TREE_TYPE (decl), tem;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
+   tree orig_decl = OMP_CLAUSE_DECL (clause);
  
!   if (DECL_ARTIFICIAL (orig_decl)
!       && DECL_LANG_SPECIFIC (orig_decl)
!       && GFC_DECL_SAVED_DESCRIPTOR (orig_decl))
!     {
!       orig_decl = GFC_DECL_SAVED_DESCRIPTOR (orig_decl);
!       decl_type = TREE_TYPE (orig_decl);
!     }
! 
!   /* Only pointer association was privatized; cf. gfc_omp_clause_copy_ctr.
!      Scalar class pointers must not finalize or free their targets here.  */
!   if (DECL_P (orig_decl)
!       && (GFC_DECL_ASSOCIATE_VAR_P (orig_decl)
! 	  || GFC_DECL_GET_SCALAR_POINTER (orig_decl)
! 	  || gfc_is_class_pointer_type (decl_type)))
      return NULL_TREE;
  
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
        if (POINTER_TYPE_P (decl_type))
*************** gfc_trans_omp_clauses (stmtblock_t *bloc
*** 3074,3080 ****
  		{
  		  tree ptr;
  		  gfc_init_se (&se, NULL);
! 		  if (n->expr->ref->u.ar.type == AR_ELEMENT)
  		    {
  		      gfc_conv_expr_reference (&se, n->expr);
  		      ptr = se.expr;
--- 3114,3124 ----
  		{
  		  tree ptr;
  		  gfc_init_se (&se, NULL);
! 		  /* The first ref can be an element selection on the base
! 		     object while the full expression still denotes an array,
! 		     e.g. x(j)%a.  Pick the lowering path from the overall
! 		     expression rank, not from the first REF_ARRAY.  */
! 		  if (n->expr->rank == 0)
  		    {
  		      gfc_conv_expr_reference (&se, n->expr);
  		      ptr = se.expr;
*************** gfc_trans_omp_depobj (gfc_code *code)
*** 6243,6249 ****
        else if (n->expr && n->expr->ref->u.ar.type != AR_FULL)
  	{
  	  gfc_init_se (&se, NULL);
! 	  if (n->expr->ref->u.ar.type == AR_ELEMENT)
  	    {
  	      gfc_conv_expr_reference (&se, n->expr);
  	      var = se.expr;
--- 6287,6293 ----
        else if (n->expr && n->expr->ref->u.ar.type != AR_FULL)
  	{
  	  gfc_init_se (&se, NULL);
! 	  if (n->expr->rank == 0)
  	    {
  	      gfc_conv_expr_reference (&se, n->expr);
  	      var = se.expr;
diff -Nrcpad gcc-14-20260327/gcc/fortran/trans-types.cc gcc-14-20260403/gcc/fortran/trans-types.cc
*** gcc-14-20260327/gcc/fortran/trans-types.cc	Fri Mar 27 22:32:07 2026
--- gcc-14-20260403/gcc/fortran/trans-types.cc	Fri Apr  3 22:32:08 2026
*************** along with GCC; see the file COPYING3.
*** 39,45 ****
  #include "dwarf2out.h"	/* For struct array_descr_info.  */
  #include "attribs.h"
  #include "alias.h"
! 
  
  #if (GFC_MAX_DIMENSIONS < 10)
  #define GFC_RANK_DIGITS 1
--- 39,45 ----
  #include "dwarf2out.h"	/* For struct array_descr_info.  */
  #include "attribs.h"
  #include "alias.h"
! 
  
  #if (GFC_MAX_DIMENSIONS < 10)
  #define GFC_RANK_DIGITS 1
*************** gfc_get_pchar_type (int kind)
*** 1111,1117 ****
    return index < 0 ? 0 : gfc_pcharacter_types[index];
  }
  
! 
  /* Create a character type with the given kind and length.  */
  
  tree
--- 1111,1117 ----
    return index < 0 ? 0 : gfc_pcharacter_types[index];
  }
  
! 
  /* Create a character type with the given kind and length.  */
  
  tree
*************** gfc_get_character_type (int kind, gfc_ch
*** 1147,1153 ****
  
    return gfc_get_character_type_len (kind, len);
  }
! 
  /* Convert a basic type.  This will be an array for character types.  */
  
  tree
--- 1147,1153 ----
  
    return gfc_get_character_type_len (kind, len);
  }
! 
  /* Convert a basic type.  This will be an array for character types.  */
  
  tree
*************** gfc_typenode_for_spec (gfc_typespec * sp
*** 1243,1249 ****
      }
    return basetype;
  }
! 
  /* Build an INT_CST for constant expressions, otherwise return NULL_TREE.  */
  
  static tree
--- 1243,1249 ----
      }
    return basetype;
  }
! 
  /* Build an INT_CST for constant expressions, otherwise return NULL_TREE.  */
  
  static tree
*************** gfc_conv_array_bound (gfc_expr * expr)
*** 1256,1262 ****
    /* Otherwise return NULL.  */
    return NULL_TREE;
  }
! 
  /* Return the type of an element of the array.  Note that scalar coarrays
     are special.  In particular, for GFC_ARRAY_TYPE_P, the original argument
     (with POINTER_TYPE stripped) is returned.  */
--- 1256,1262 ----
    /* Otherwise return NULL.  */
    return NULL_TREE;
  }
! 
  /* Return the type of an element of the array.  Note that scalar coarrays
     are special.  In particular, for GFC_ARRAY_TYPE_P, the original argument
     (with POINTER_TYPE stripped) is returned.  */
*************** gfc_get_element_type (tree type)
*** 1296,1302 ****
  
    return element;
  }
! 
  /* Build an array.  This function is called from gfc_sym_type().
     Actually returns array descriptor type.
  
--- 1296,1302 ----
  
    return element;
  }
! 
  /* Build an array.  This function is called from gfc_sym_type().
     Actually returns array descriptor type.
  
*************** gfc_build_array_type (tree type, gfc_arr
*** 1468,1474 ****
  				    corank, lbound, ubound, 0, akind,
  				    restricted);
  }
! 
  /* Returns the struct descriptor_dimension type.  */
  
  static tree
--- 1468,1474 ----
  				    corank, lbound, ubound, 0, akind,
  				    restricted);
  }
! 
  /* Returns the struct descriptor_dimension type.  */
  
  static tree
*************** gfc_get_array_type_bounds (tree etype, i
*** 2096,2102 ****
  
    return fat_type;
  }
! 
  /* Build a pointer type. This function is called from gfc_sym_type().  */
  
  static tree
--- 2096,2102 ----
  
    return fat_type;
  }
! 
  /* Build a pointer type. This function is called from gfc_sym_type().  */
  
  static tree
*************** gfc_nonrestricted_type (tree t)
*** 2271,2277 ****
    return ret;
  }
  
! 
  /* Return the type for a symbol.  Special handling is required for character
     types to get the correct level of indirection.
     For functions return the return type.
--- 2271,2277 ----
    return ret;
  }
  
! 
  /* Return the type for a symbol.  Special handling is required for character
     types to get the correct level of indirection.
     For functions return the return type.
*************** gfc_sym_type (gfc_symbol * sym, bool is_
*** 2398,2404 ****
  
    return (type);
  }
! 
  /* Layout and output debug info for a record type.  */
  
  void
--- 2398,2404 ----
  
    return (type);
  }
! 
  /* Layout and output debug info for a record type.  */
  
  void
*************** gfc_finish_type (tree type)
*** 2413,2419 ****
    rest_of_type_compilation (type, 1);
    rest_of_decl_compilation (decl, 1, 0);
  }
! 
  /* Add a field of given NAME and TYPE to the context of a UNION_TYPE
     or RECORD_TYPE pointed to by CONTEXT.  The new field is chained
     to the end of the field list pointed to by *CHAIN.
--- 2413,2419 ----
    rest_of_type_compilation (type, 1);
    rest_of_decl_compilation (decl, 1, 0);
  }
! 
  /* Add a field of given NAME and TYPE to the context of a UNION_TYPE
     or RECORD_TYPE pointed to by CONTEXT.  The new field is chained
     to the end of the field list pointed to by *CHAIN.
*************** gfc_return_by_reference (gfc_symbol * sy
*** 2977,2983 ****
  
    return 0;
  }
! 
  static tree
  gfc_get_mixed_entry_union (gfc_namespace *ns)
  {
--- 2977,3004 ----
  
    return 0;
  }
! 
! static tree
! gfc_get_entry_result_type (gfc_symbol *sym)
! {
!   tree type;
! 
!   type = gfc_sym_type (sym->result);
! 
!   /* Mixed ENTRY master unions must use the ABI return type of each entry.
!      Under -ff2c, default REAL entries return C double even though their
!      Fortran result symbol remains default REAL.  */
!   if (flag_f2c
!       && sym->ts.type == BT_REAL
!       && sym->ts.kind == gfc_default_real_kind
!       && !sym->attr.pointer
!       && !sym->attr.allocatable
!       && !sym->attr.always_explicit)
!     type = gfc_get_real_type (gfc_default_double_kind);
! 
!   return type;
! }
! 
  static tree
  gfc_get_mixed_entry_union (gfc_namespace *ns)
  {
*************** gfc_get_mixed_entry_union (gfc_namespace
*** 3006,3012 ****
        if (el == el2)
  	gfc_add_field_to_struct_1 (type,
  				   get_identifier (el->sym->result->name),
! 				   gfc_sym_type (el->sym->result), &chain);
      }
  
    /* Finish off the type.  */
--- 3027,3034 ----
        if (el == el2)
  	gfc_add_field_to_struct_1 (type,
  				   get_identifier (el->sym->result->name),
! 				   gfc_get_entry_result_type (el->sym),
! 				   &chain);
      }
  
    /* Finish off the type.  */
*************** gfc_get_mixed_entry_union (gfc_namespace
*** 3014,3020 ****
    TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (type)) = 1;
    return type;
  }
! 
  /* Create a "fn spec" based on the formal arguments;
     cf. create_function_arglist.  */
  
--- 3036,3042 ----
    TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (type)) = 1;
    return type;
  }
! 
  /* Create a "fn spec" based on the formal arguments;
     cf. create_function_arglist.  */
  
*************** arg_type_list_done:
*** 3335,3341 ****
  
    return type;
  }
! 
  /* Language hooks for middle-end access to type nodes.  */
  
  /* Return an integer type with BITS bits of precision,
--- 3357,3363 ----
  
    return type;
  }
! 
  /* Language hooks for middle-end access to type nodes.  */
  
  /* Return an integer type with BITS bits of precision,
diff -Nrcpad gcc-14-20260327/gcc/testsuite/ChangeLog gcc-14-20260403/gcc/testsuite/ChangeLog
*** gcc-14-20260327/gcc/testsuite/ChangeLog	Fri Mar 27 22:32:08 2026
--- gcc-14-20260403/gcc/testsuite/ChangeLog	Fri Apr  3 22:32:09 2026
***************
*** 1,3 ****
--- 1,110 ----
+ 2026-04-02  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102596
+ 	* gfortran.dg/pr102596.f90: New test.
+ 
+ 2026-03-31  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/opt107.adb: New test.
+ 	* gnat.dg/opt107_pkg.ads: New helper.
+ 
+ 2026-03-31  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-03-31  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR target/124712
+ 	* gcc.dg/vect/vect-fmax-2.c: Changed effective target vect_float
+ 	to vect_double.
+ 	* gcc.dg/vect/vect-fmax-3.c: Likewise.
+ 	* gcc.dg/vect/vect-fmin-2.c: Likewise.
+ 	* gcc.dg/vect/vect-fmin-3.c: Likewise.
+ 
+ 2026-03-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-02  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* g++.dg/cpp23/feat-cxx2b.C: Adjust expected __cpp_deduction_guides
+ 	value.
+ 	* g++.dg/cpp26/feat-cxx26.C: Likewise.
+ 
+ 2026-03-30  Daniele Sahebi  <daniele@mkryss.me>
+ 
+ 	Backported from master:
+ 	2025-11-22  Daniele Sahebi  <daniele@mkryss.me>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/122658
+ 	* g++.dg/cpp2a/consteval42.C: New test.
+ 
+ 2026-03-30  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-12-18  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 		    Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122070
+ 	* g++.dg/cpp23/class-deduction-inherited10.C: New test.
+ 	* g++.dg/cpp23/class-deduction-inherited9.C: New test.
+ 
+ 2026-03-30  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-12-23  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
+ 
+ 	PR c++/122550
+ 	* g++.dg/cpp2a/concepts-friend18.C: New test.
+ 	* g++.dg/cpp2a/concepts-friend18a.C: New test.
+ 
+ 2026-03-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-09-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/97740
+ 	* g++.dg/cpp0x/constexpr-97740a.C: New test.
+ 	* g++.dg/cpp0x/constexpr-97740b.C: New test.
+ 
+ 2026-03-30  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/95338
+ 	* gfortran.dg/pr95338.f90: New test.
+ 
+ 2026-03-29  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102459
+ 	* gfortran.dg/pr102459.f90: New test.
+ 
+ 2026-03-29  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-12  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/82721
+ 	* gfortran.dg/pr82721.f90: New test.
+ 
+ 2026-03-29  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-01-23  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/96087
+ 	* gfortran.dg/pr96087.f90: New test.
+ 
+ 2026-03-28  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-28  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	* gfortran.dg/pr84245.f90: New test.
+ 
  2026-03-25  Alex Coplan  <alex.coplan@arm.com>
  
  	PR middle-end/124491
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp0x/constexpr-97740a.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp0x/constexpr-97740a.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp0x/constexpr-97740a.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp0x/constexpr-97740a.C	Fri Apr  3 22:32:10 2026
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/97740
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {
+   constexpr const int* get() const { return &m; }
+ private:
+   int m;
+ } a;
+ 
+ struct B { const int* p; };
+ 
+ template<class T>
+ void f() {
+   constexpr B x = {a.get()}; // { dg-bogus "private" }
+   constexpr B y = {&a.m};    // { dg-error "private" }
+ }
+ 
+ template void f<int>();
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp0x/constexpr-97740b.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp0x/constexpr-97740b.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp0x/constexpr-97740b.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp0x/constexpr-97740b.C	Fri Apr  3 22:32:10 2026
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/97740
+ // { dg-do compile { target c++14 } }
+ 
+ struct A {
+   constexpr const int* get() const { return &m; }
+ private:
+   int m;
+ } a;
+ 
+ struct B { const int* p; };
+ 
+ template<A* arg>
+ void f() {
+   [] (auto) {
+     constexpr B x = {arg->get()}; // { dg-bogus "private" }
+     constexpr B y = {&arg->m};    // { dg-error "private" }
+   }(0);
+ }
+ 
+ template void f<&a>();
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited10.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited10.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited10.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited10.C	Fri Apr  3 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/122070
+ // { dg-do compile { target c++23 } }
+ 
+ template<class T> struct A { A(T) {}; };
+ 
+ using B = A<int>;
+ 
+ template<class T=void>
+ struct C : B { using B::B; };
+ 
+ C c = 0;
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited9.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited9.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited9.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited9.C	Fri Apr  3 22:32:10 2026
***************
*** 0 ****
--- 1,31 ----
+ // PR c++/122070
+ // { dg-do compile { target c++23 } }
+ 
+ namespace std {
+     using size_t = decltype(sizeof(0));
+     template<typename CharT>
+     struct basic_string_view {
+         const CharT* ptr;
+         size_t len;
+         constexpr basic_string_view(const CharT* p) : ptr(p), len(0) { while (p && p[len]) ++len; }
+     };
+     using string_view = basic_string_view<char>;
+ }
+ 
+ template<std::size_t N>
+ struct sized_string_view: std::string_view {
+     using std::string_view::string_view;
+ };
+ template<std::size_t N>
+ sized_string_view(const char (&str)[N]) -> sized_string_view<N - 1>;
+ 
+ constexpr auto string_builder(auto first, auto second, auto... trailing) {
+     constexpr auto is_last = sizeof...(trailing) == 0;
+     auto buffer = 1;
+     if constexpr (is_last) {
+         return buffer;
+     } else
+         return string_builder(buffer, trailing...);
+ }
+ 
+ constexpr auto copyright = string_builder(sized_string_view("a"), sized_string_view("b"), sized_string_view("c"));
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C	Fri Mar 27 22:32:08 2026
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C	Fri Apr  3 22:32:10 2026
***************
*** 352,359 ****
  
  #ifndef __cpp_deduction_guides
  #  error "__cpp_deduction_guides"
! #elif __cpp_deduction_guides != 201907
! #  error "__cpp_deduction_guides != 201907"
  #endif
  
  #ifndef __cpp_if_constexpr
--- 352,359 ----
  
  #ifndef __cpp_deduction_guides
  #  error "__cpp_deduction_guides"
! #elif __cpp_deduction_guides != 202207
! #  error "__cpp_deduction_guides != 202207"
  #endif
  
  #ifndef __cpp_if_constexpr
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp26/feat-cxx26.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp26/feat-cxx26.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp26/feat-cxx26.C	Fri Mar 27 22:32:08 2026
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp26/feat-cxx26.C	Fri Apr  3 22:32:10 2026
***************
*** 352,359 ****
  
  #ifndef __cpp_deduction_guides
  #  error "__cpp_deduction_guides"
! #elif __cpp_deduction_guides != 201907
! #  error "__cpp_deduction_guides != 201907"
  #endif
  
  #ifndef __cpp_if_constexpr
--- 352,359 ----
  
  #ifndef __cpp_deduction_guides
  #  error "__cpp_deduction_guides"
! #elif __cpp_deduction_guides != 202207
! #  error "__cpp_deduction_guides != 202207"
  #endif
  
  #ifndef __cpp_if_constexpr
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp2a/concepts-friend18.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp2a/concepts-friend18.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp2a/concepts-friend18.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp2a/concepts-friend18.C	Fri Apr  3 22:32:10 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/122550
+ // { dg-do compile { target c++20 } }
+ 
+ struct Hasher;
+ template <class a>
+ concept C = true;
+ 
+ template<C T>
+ void add(Hasher&, T);
+ 
+ struct Hasher {
+     template<C T>
+     friend void add(Hasher& hasher, T integer) {}
+ };
+ 
+ int main() {
+     Hasher h;
+     add(h, 0);
+ }
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp2a/concepts-friend18a.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp2a/concepts-friend18a.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp2a/concepts-friend18a.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp2a/concepts-friend18a.C	Fri Apr  3 22:32:10 2026
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/122550
+ // { dg-do compile { target c++20 } }
+ 
+ template<typename U>
+ struct Hasher;
+ 
+ template <class a>
+ concept C = true;
+ 
+ template<C T>
+ void add(Hasher<int>&, T);
+ 
+ template<>
+ struct Hasher<int> {
+     template<C T>
+     friend void add(Hasher& hasher, T integer) {}
+ };
+ 
+ int main() {
+     Hasher<int> h;
+     add(h, 0);
+ }
diff -Nrcpad gcc-14-20260327/gcc/testsuite/g++.dg/cpp2a/consteval42.C gcc-14-20260403/gcc/testsuite/g++.dg/cpp2a/consteval42.C
*** gcc-14-20260327/gcc/testsuite/g++.dg/cpp2a/consteval42.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/g++.dg/cpp2a/consteval42.C	Fri Apr  3 22:32:10 2026
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/122658
+ // { dg-do compile { target c++20 } }
+ 
+ struct S {
+   consteval S () noexcept { }
+   consteval S (const S &) = default;
+ };
+ 
+ template <typename T>
+ S
+ foo ()
+ {
+   constexpr auto s = S();
+   return s;
+ }
+ 
+ S
+ bar ()
+ {
+   return foo <int> ();
+ }
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmax-2.c gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmax-2.c
*** gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmax-2.c	Fri Mar 27 22:32:12 2026
--- gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmax-2.c	Fri Apr  3 22:32:12 2026
***************
*** 1,4 ****
! /* { dg-require-effective-target vect_float } */
  
  #define TYPE double
  #define FN __builtin_fmax
--- 1,4 ----
! /* { dg-require-effective-target vect_double } */
  
  #define TYPE double
  #define FN __builtin_fmax
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmax-3.c gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmax-3.c
*** gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmax-3.c	Fri Mar 27 22:32:12 2026
--- gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmax-3.c	Fri Apr  3 22:32:12 2026
***************
*** 1,4 ****
! /* { dg-require-effective-target vect_float } */
  
  #include "tree-vect.h"
  
--- 1,4 ----
! /* { dg-require-effective-target vect_double } */
  
  #include "tree-vect.h"
  
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmin-2.c gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
*** gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmin-2.c	Fri Mar 27 22:32:12 2026
--- gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmin-2.c	Fri Apr  3 22:32:12 2026
***************
*** 1,4 ****
! /* { dg-require-effective-target vect_float } */
  
  #ifndef TYPE
  #define TYPE double
--- 1,4 ----
! /* { dg-require-effective-target vect_double } */
  
  #ifndef TYPE
  #define TYPE double
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmin-3.c gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
*** gcc-14-20260327/gcc/testsuite/gcc.dg/vect/vect-fmin-3.c	Fri Mar 27 22:32:12 2026
--- gcc-14-20260403/gcc/testsuite/gcc.dg/vect/vect-fmin-3.c	Fri Apr  3 22:32:12 2026
***************
*** 1,4 ****
! /* { dg-require-effective-target vect_float } */
  
  #include "tree-vect.h"
  
--- 1,4 ----
! /* { dg-require-effective-target vect_double } */
  
  #include "tree-vect.h"
  
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gfortran.dg/pr102459.f90 gcc-14-20260403/gcc/testsuite/gfortran.dg/pr102459.f90
*** gcc-14-20260327/gcc/testsuite/gfortran.dg/pr102459.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gfortran.dg/pr102459.f90	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fopenmp" }
+ 
+ program p
+   type t
+     integer :: a(2)
+   end type
+   type(t) :: x(8)
+ 
+   !$omp task depend (iterator(j=1:8), out:x(j)%a)
+   !$omp end task
+ 
+   !$omp task depend (iterator(j=1:8), out:x(j)%a(1))
+   !$omp end task
+ end
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gfortran.dg/pr102596.f90 gcc-14-20260403/gcc/testsuite/gfortran.dg/pr102596.f90
*** gcc-14-20260327/gcc/testsuite/gfortran.dg/pr102596.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gfortran.dg/pr102596.f90	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fopenmp" }
+ 
+ program p
+   integer, allocatable :: r
+ 
+   allocate (r)
+   r = 0
+ 
+   !$omp target parallel reduction(task, +:r)
+   r = r + 1
+   !$omp end target parallel
+ end
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gfortran.dg/pr82721.f90 gcc-14-20260403/gcc/testsuite/gfortran.dg/pr82721.f90
*** gcc-14-20260327/gcc/testsuite/gfortran.dg/pr82721.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gfortran.dg/pr82721.f90	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! { dg-set-target-env-var MALLOC_PERTURB_ "165" }
+ ! PR fortran/82721
+ ! Reject a duplicate declaration without leaving the CHARACTER length
+ ! expression from the failed statement on the namespace charlen list.
+ 
+ integer :: b
+ character(len(c)) :: b  ! { dg-error "already has basic type of INTEGER" }
+ end
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gfortran.dg/pr84245.f90 gcc-14-20260403/gcc/testsuite/gfortran.dg/pr84245.f90
*** gcc-14-20260327/gcc/testsuite/gfortran.dg/pr84245.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gfortran.dg/pr84245.f90	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! { dg-options "-w" }
+ 
+ program p
+   select type (x%a) ! { dg-error "Unexpected '%'.*nonderived-type variable 'x'" }
+   end select        ! { dg-error "Expecting END PROGRAM statement" }
+ end
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gfortran.dg/pr95338.f90 gcc-14-20260403/gcc/testsuite/gfortran.dg/pr95338.f90
*** gcc-14-20260327/gcc/testsuite/gfortran.dg/pr95338.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gfortran.dg/pr95338.f90	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-O1 -ff2c" }
+ !
+ ! PR fortran/95338 - mixed ENTRY results with -ff2c must use the ABI
+ ! return type in the master union.
+ 
+ module m
+ contains
+   function f(x)
+     integer :: x
+     integer :: f
+     real :: g
+ 
+     f = x
+     return
+ 
+     entry g(x)
+     g = x
+   end
+ end
+ 
+ program p
+   use m
+ 
+   if (f(1) /= 1) stop 1
+   if (g(1) /= 1.0) stop 2
+ end
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gfortran.dg/pr96087.f90 gcc-14-20260403/gcc/testsuite/gfortran.dg/pr96087.f90
*** gcc-14-20260327/gcc/testsuite/gfortran.dg/pr96087.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gfortran.dg/pr96087.f90	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,46 ----
+ ! { dg-do run }
+ 
+ module m
+    interface
+       module function f(a, n, b) result(z)
+          integer, intent(in) :: n
+          real :: z(n + 1)
+          real :: a, b
+       end
+    end interface
+ contains
+    module procedure f
+       integer :: i
+       do i = 1, size(z)
+         z(i) = real(i)
+       end do
+    end procedure
+ end
+ 
+ ! Comment 1
+ module n
+    interface
+       module subroutine g(n, z)
+          integer, intent(in) :: n
+          real :: z(n)
+       end
+    end interface
+ contains
+    module procedure g
+       z = 1
+       if (int (sum (z)) /= n) stop 1
+    end procedure
+ end
+ 
+   use m
+   use n
+   real, allocatable :: r(:)
+   integer :: i = 2
+   r = f (1.0, i+1, 2.0)
+   if (any (r .ne. [(real(i), i = 1,4)])) stop 2
+   if (any (f (3.0, 1, 4.0) .ne. [(real(i), i = 1,2)])) stop 3
+ 
+   r = [(real (i), i = 10,20)]
+   call g (5, r)
+   if (int (sum (r)) /= (sum ([(i, i = 15,20)]) + 5)) stop 4
+ end
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gnat.dg/opt107.adb gcc-14-20260403/gcc/testsuite/gnat.dg/opt107.adb
*** gcc-14-20260327/gcc/testsuite/gnat.dg/opt107.adb	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gnat.dg/opt107.adb	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,27 ----
+ -- { dg-do compile }
+ -- { dg-options "-O" }
+ 
+ with Opt107_Pkg; use Opt107_Pkg;
+ 
+ function Opt107 return Rec is
+    R : Rec;
+ begin
+    R.W1A := B_A_7;
+    R.W1B := 0;
+    R.W1C := C_A;
+    R.W1D := (Spare => 0,
+              D_A => 0,
+              D_B => 0,
+              D_C => 0,
+              D_D => 0);
+    R.W2B := (Spare => 0,
+              E_A => 0,
+              E_B => 0,
+              E_C => 0,
+              E_D => 0,
+              E_E => 0,
+              E_F => 0,
+              E_G => 0,
+              E_H => 0);
+    return R;
+ end;
diff -Nrcpad gcc-14-20260327/gcc/testsuite/gnat.dg/opt107_pkg.ads gcc-14-20260403/gcc/testsuite/gnat.dg/opt107_pkg.ads
*** gcc-14-20260327/gcc/testsuite/gnat.dg/opt107_pkg.ads	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/gcc/testsuite/gnat.dg/opt107_pkg.ads	Fri Apr  3 22:32:15 2026
***************
*** 0 ****
--- 1,156 ----
+ with System;
+ with Unchecked_Conversion;
+ 
+ package Opt107_Pkg is
+ 
+    Word_Size : constant := 32;
+    type Word_Type is mod 2 ** Word_Size;
+    for Word_Type'Size use Word_Size;
+ 
+    Word : constant := Word_Size / System.Storage_Unit;
+ 
+    Halfword_Size : constant := Word_Size / 2;
+    
+    type Halfword_Type is range 0 .. 2 ** Halfword_Size - 1;
+    for Halfword_Type'Size use Halfword_Size;
+ 
+    type One_Bit_Type is mod 2 ** 1;
+    for One_Bit_Type'Size use 1;
+    
+    type Four_Bit_Type is mod 2 ** 4;
+    for Four_Bit_Type'Size use 4;
+ 
+    type Seven_Bit_Type is mod 2 ** 7;
+    for Seven_Bit_Type'Size use 7;
+ 
+    type Eight_Bit_Type is mod 2 ** 8;
+    for Eight_Bit_Type'Size use 8;
+ 
+    type Twelve_Bit_Type is mod 2 ** 12;
+    for Twelve_Bit_Type'Size use 12;
+    
+    type Thirty_One_Bit_Type is mod 2 ** 31;
+    for Thirty_One_Bit_Type'Size use 31;
+ 
+    type W0_Type is record
+       A : Eight_Bit_Type;
+       B : Eight_Bit_Type;
+       C : Halfword_Type;
+    end record;
+ 
+    for W0_Type use record
+       A at Word * 0 range 24 .. 31;
+       B at Word * 0 range 16 .. 23;
+       C at Word * 0 range 0 .. 15;
+    end record;
+    for W0_Type'Size use Word_Size;
+ 
+    type A_Type is (A0, A1);
+    for A_Type use (A0 => 0, A1 => 1);
+    for A_Type'Size use 1;
+    
+    type B_Type is (B_A_1,
+                    B_A_2,
+                    B_A_3,
+                    B_A_4,
+                    B_A_5,
+                    B_A_6,
+                    B_A_7,
+                    B_A_8,
+                    B_B_1,
+                    B_B_2,
+                    B_B_3,
+                    B_B_4,
+                    B_B_5,
+                    B_B_6,
+                    B_B_7,
+                    B_B_8);
+ 
+    for B_Type use (B_A_1 => 8#00#,
+                    B_A_2 => 8#01#,
+                    B_A_3 => 8#02#,
+                    B_A_4 => 8#03#,
+                    B_A_5 => 8#04#,
+                    B_A_6 => 8#05#,
+                    B_A_7 => 8#06#,
+                    B_A_8 => 8#07#,
+                    B_B_1 => 8#10#,
+                    B_B_2 => 8#11#,
+                    B_B_3 => 8#12#,
+                    B_B_4 => 8#13#,
+                    B_B_5 => 8#14#,
+                    B_B_6 => 8#15#,
+                    B_B_7 => 8#16#,
+                    B_B_8 => 8#17#);
+    for B_Type'Size use 8;
+    
+    type C_Type is (C_A, C_B);
+    for C_Type use (C_A => 0, C_B => 2);
+    for C_Type'Size use 4;
+    
+    type D_Type is record
+       Spare : Twelve_Bit_Type;
+       D_A : One_Bit_Type;
+       D_B : One_Bit_Type;
+       D_C : One_Bit_Type;
+       D_D : One_Bit_Type;
+    end record;
+ 
+    for D_Type use record
+       Spare at 0 range 4 .. 15;
+       D_A at 0 range 3 .. 3;
+       D_B at 0 range 2 .. 2;
+       D_C at 0 range 1 .. 1;
+       D_D at 0 range 0 .. 0;
+    end record;
+    for D_Type'Size use Halfword_Size;
+ 
+    type E_Type is record
+       Spare : Seven_Bit_Type;
+       E_A : One_Bit_Type;
+       E_B : One_Bit_Type;
+       E_C : One_Bit_Type;
+       E_D : One_Bit_Type;
+       E_E : One_Bit_Type;
+       E_F : One_Bit_Type;
+       E_G : One_Bit_Type;
+       E_H : One_Bit_Type;
+    end record;
+ 
+    for E_Type use record
+       Spare at 0 range 8 .. 14;
+       E_A at 0 range 7 .. 7;
+       E_B at 0 range 6 .. 6;
+       E_C at 0 range 5 .. 5;
+       E_D at 0 range 4 .. 4;
+       E_E at 0 range 3 .. 3;
+       E_F at 0 range 2 .. 2;
+       E_G at 0 range 1 .. 1;
+       E_H at 0 range 0 .. 0;
+    end record;
+    for E_Type'Size use 15;
+ 
+    type Rec is record
+       W0 : W0_Type;
+       W1A : B_Type;
+       W1B : Four_Bit_Type;
+       W1C : C_Type;
+       W1D : D_Type;
+       W2A : A_Type;
+       W2B : E_Type;
+       W2C : Halfword_Type;
+    end record;
+ 
+    for Rec use record
+       W0  at Word * 0 range  0 .. 31;
+       W1A at Word * 1 range 24 .. 31;
+       W1B at Word * 1 range 20 .. 23;
+       W1C at Word * 1 range 16 .. 19;
+       W1D at Word * 1 range  0 .. 15;
+       W2A at Word * 2 range 31 .. 31;
+       W2B at Word * 2 range 16 .. 30;
+       W2C at Word * 2 range  0 .. 15;
+    end record;
+    for Rec'Size use 6 * Halfword_Size;
+ 
+ end Opt107_Pkg;
diff -Nrcpad gcc-14-20260327/gcc/tree-ssa-dse.cc gcc-14-20260403/gcc/tree-ssa-dse.cc
*** gcc-14-20260327/gcc/tree-ssa-dse.cc	Fri Mar 27 22:32:15 2026
--- gcc-14-20260403/gcc/tree-ssa-dse.cc	Fri Apr  3 22:32:15 2026
*************** compute_trims (ao_ref *ref, sbitmap live
*** 424,431 ****
       the bitmap extends through ref->max_size, so we know that in the original
       bitmap bits 0 .. ref->max_size were true.  But we need to check that this
       covers the bytes of REF exactly.  */
!   const unsigned int align = known_alignment (ref->offset);
!   if ((align > 0 && align < BITS_PER_UNIT)
        || !known_eq (ref->size, ref->max_size))
      return;
  
--- 424,433 ----
       the bitmap extends through ref->max_size, so we know that in the original
       bitmap bits 0 .. ref->max_size were true.  But we need to check that this
       covers the bytes of REF exactly.  */
!   const unsigned int offset_align = known_alignment (ref->offset);
!   const unsigned int size_align = known_alignment (ref->size);
!   if ((offset_align > 0 && offset_align < BITS_PER_UNIT)
!       || (size_align > 0 && size_align < BITS_PER_UNIT)
        || !known_eq (ref->size, ref->max_size))
      return;
  
diff -Nrcpad gcc-14-20260327/libgomp/ChangeLog gcc-14-20260403/libgomp/ChangeLog
*** gcc-14-20260327/libgomp/ChangeLog	Fri Mar 27 22:32:16 2026
--- gcc-14-20260403/libgomp/ChangeLog	Fri Apr  3 22:32:16 2026
***************
*** 1,3 ****
--- 1,7 ----
+ 2026-04-02  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	* testsuite/libgomp.fortran/pr120286.f90: New test.
+ 
  2026-03-15  Frank Scheiner  <frank.scheiner@web.de>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260327/libgomp/testsuite/libgomp.fortran/pr120286.f90 gcc-14-20260403/libgomp/testsuite/libgomp.fortran/pr120286.f90
*** gcc-14-20260327/libgomp/testsuite/libgomp.fortran/pr120286.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260403/libgomp/testsuite/libgomp.fortran/pr120286.f90	Fri Apr  3 22:32:17 2026
***************
*** 0 ****
--- 1,49 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/120286 - scalar class pointers in OpenMP private/firstprivate
+ ! clauses must preserve association status without taking ownership.
+ 
+ program main
+   implicit none
+ 
+   type foo_t
+     integer :: dummy
+   end type foo_t
+ 
+   type fooPtr_t
+     class(foo_t), pointer :: p
+   end type fooPtr_t
+ 
+   type fooPtrStack_t
+     class(fooPtr_t), allocatable :: list(:)
+   end type fooPtrStack_t
+ 
+   type(fooPtrStack_t) :: x
+   class(foo_t), pointer :: ptr
+   integer :: it, n
+   logical :: ok
+ 
+   allocate (x%list(1))
+   allocate (x%list(1)%p)
+   x%list(1)%p%dummy = 7
+ 
+   do it = 1, 16
+ !$omp parallel do default(none) num_threads(2) private(n, ptr) shared(x)
+     do n = 1, 1
+       ptr => x%list(n)%p
+     end do
+ !$omp end parallel do
+   end do
+ 
+   if (.not. associated (x%list(1)%p)) stop 1
+   if (x%list(1)%p%dummy /= 7) stop 2
+ 
+   ptr => x%list(1)%p
+   ok = .false.
+ 
+ !$omp parallel default(none) num_threads(1) firstprivate(ptr) shared(x, ok)
+   ok = associated (ptr, x%list(1)%p) .and. ptr%dummy == 7
+ !$omp end parallel
+ 
+   if (.not. ok) stop 3
+ end program main
diff -Nrcpad gcc-14-20260327/libstdc++-v3/ChangeLog gcc-14-20260403/libstdc++-v3/ChangeLog
*** gcc-14-20260327/libstdc++-v3/ChangeLog	Fri Mar 27 22:32:17 2026
--- gcc-14-20260403/libstdc++-v3/ChangeLog	Fri Apr  3 22:32:17 2026
***************
*** 1,3 ****
--- 1,20 ----
+ 2026-03-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/122842
+ 	* include/bits/ranges_base.h (__access:_CBegin): Define in
+ 	terms of const_iterator directly, not const_iterator_t.
+ 	(__access::_CEnd): Likewise in terms of const_sentinel vs
+ 	const_sentinel_t.
+ 	(const_iterator_t): Move down definition and define in terms
+ 	of ranges::cbegin as per LWG 3946.
+ 	(const_sentinel_t): Likewise in terms of ranges::cend.
+ 	* testsuite/24_iterators/const_iterator/1.cc (test02): Correct
+ 	test for int[], std::array and std::vector.  Also test
+ 	std::string.
+ 
  2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260327/libstdc++-v3/include/bits/ranges_base.h gcc-14-20260403/libstdc++-v3/include/bits/ranges_base.h
*** gcc-14-20260327/libstdc++-v3/include/bits/ranges_base.h	Fri Mar 27 22:32:17 2026
--- gcc-14-20260403/libstdc++-v3/include/bits/ranges_base.h	Fri Apr  3 22:32:17 2026
*************** namespace ranges
*** 514,524 ****
      using sentinel_t = decltype(ranges::end(std::declval<_Range&>()));
  
  #if __glibcxx_ranges_as_const // >= C++23
!   template<range _Range>
!     using const_iterator_t = const_iterator<iterator_t<_Range>>;
! 
!   template<range _Range>
!     using const_sentinel_t = const_sentinel<sentinel_t<_Range>>;
  
    template<range _Range>
      using range_const_reference_t = iter_const_reference_t<iterator_t<_Range>>;
--- 514,520 ----
      using sentinel_t = decltype(ranges::end(std::declval<_Range&>()));
  
  #if __glibcxx_ranges_as_const // >= C++23
!   // const_iterator_t and const_sentinel_t defined below.
  
    template<range _Range>
      using range_const_reference_t = iter_const_reference_t<iterator_t<_Range>>;
*************** namespace ranges
*** 670,676 ****
  			    (ranges::begin(__access::__possibly_const_range(__t))); }
  	{
  	  auto& __r = __access::__possibly_const_range(__t);
! 	  return const_iterator_t<decltype(__r)>(ranges::begin(__r));
  	}
  #else
        template<typename _Tp>
--- 666,672 ----
  			    (ranges::begin(__access::__possibly_const_range(__t))); }
  	{
  	  auto& __r = __access::__possibly_const_range(__t);
! 	  return const_iterator<decltype(ranges::begin(__r))>(ranges::begin(__r));
  	}
  #else
        template<typename _Tp>
*************** namespace ranges
*** 698,704 ****
  			    (ranges::end(__access::__possibly_const_range(__t))); }
  	{
  	  auto& __r = __access::__possibly_const_range(__t);
! 	  return const_sentinel_t<decltype(__r)>(ranges::end(__r));
  	}
  #else
        template<typename _Tp>
--- 694,700 ----
  			    (ranges::end(__access::__possibly_const_range(__t))); }
  	{
  	  auto& __r = __access::__possibly_const_range(__t);
! 	  return const_sentinel<decltype(ranges::end(__r))>(ranges::end(__r));
  	}
  #else
        template<typename _Tp>
*************** namespace ranges
*** 802,807 ****
--- 798,813 ----
      inline constexpr ranges::__access::_CData cdata{};
    }
  
+ #if __glibcxx_ranges_as_const // >= C++23
+   // _GLIBCXX_RESOLVE_LIB_DEFECTS
+   // 3946. The definition of const_iterator_t should be reworked
+   template<range _Range>
+     using const_iterator_t = decltype(ranges::cbegin(std::declval<_Range&>()));
+ 
+   template<range _Range>
+     using const_sentinel_t = decltype(ranges::cend(std::declval<_Range&>()));
+ #endif
+ 
    namespace __detail
    {
      template<typename _Tp>
diff -Nrcpad gcc-14-20260327/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc gcc-14-20260403/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
*** gcc-14-20260327/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc	Fri Mar 27 22:32:17 2026
--- gcc-14-20260403/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc	Fri Apr  3 22:32:18 2026
*************** test01()
*** 42,53 ****
      }
  }
  
! template<class Range, bool Const>
  void
  test02()
  {
    if constexpr (Const)
      {
        static_assert( ranges::constant_range<Range> );
        static_assert( std::same_as<ranges::const_iterator_t<Range>, ranges::iterator_t<Range>> );
        static_assert( std::same_as<ranges::const_sentinel_t<Range>, ranges::sentinel_t<Range>> );
--- 42,54 ----
      }
  }
  
! template<class Range, bool Const, bool Constable = Const>
  void
  test02()
  {
    if constexpr (Const)
      {
+       static_assert(Constable);
        static_assert( ranges::constant_range<Range> );
        static_assert( std::same_as<ranges::const_iterator_t<Range>, ranges::iterator_t<Range>> );
        static_assert( std::same_as<ranges::const_sentinel_t<Range>, ranges::sentinel_t<Range>> );
*************** test02()
*** 64,72 ****
        static_assert( !ranges::constant_range<Range> );
        using Wrapped = std::basic_const_iterator<ranges::iterator_t<Range>>;
  
!       static_assert( std::same_as<ranges::const_iterator_t<Range>, Wrapped> );
!       if constexpr (ranges::common_range<Range>)
! 	static_assert( std::same_as<ranges::const_sentinel_t<Range>, Wrapped> );
        static_assert( std::same_as<ranges::range_const_reference_t<Range>,
  				 std::iter_reference_t<Wrapped>> );
  
--- 65,85 ----
        static_assert( !ranges::constant_range<Range> );
        using Wrapped = std::basic_const_iterator<ranges::iterator_t<Range>>;
  
!       if constexpr (Constable)
! 	{
! 	  // Verify LWG 3946 changes to const_iterator/sentinel_t (PR122842).
! 	  static_assert( std::same_as<ranges::const_iterator_t<Range>,
! 				      ranges::iterator_t<const Range>> );
! 	  static_assert( std::same_as<ranges::const_sentinel_t<Range>,
! 				      ranges::sentinel_t<const Range>> );
! 	}
!       else
! 	{
! 	  static_assert( std::same_as<ranges::const_iterator_t<Range>, Wrapped> );
! 	  if constexpr (ranges::common_range<Range>)
! 	    static_assert( std::same_as<ranges::const_sentinel_t<Range>, Wrapped> );
! 	}
! 
        static_assert( std::same_as<ranges::range_const_reference_t<Range>,
  				 std::iter_reference_t<Wrapped>> );
  
*************** main()
*** 138,150 ****
    test01<std::string_view::iterator, true>();
    test01<std::vector<bool>::const_iterator, true>();
  
!   test02<int[42], false>();
    test02<test_input_range<int>, false>();
    test02<test_forward_range<int>, false>();
    test02<test_bidirectional_range<int>, false>();
    test02<test_random_access_range<int>, false>();
!   test02<std::array<int, 3>, false>();
!   test02<std::vector<bool>, false>();
  
    test02<const int[42], true>();
    test02<test_input_range<const int>, true>();
--- 151,164 ----
    test01<std::string_view::iterator, true>();
    test01<std::vector<bool>::const_iterator, true>();
  
!   test02<int[42], false, true>();
    test02<test_input_range<int>, false>();
    test02<test_forward_range<int>, false>();
    test02<test_bidirectional_range<int>, false>();
    test02<test_random_access_range<int>, false>();
!   test02<std::array<int, 3>, false, true>();
!   test02<std::vector<bool>, false, true>();
!   test02<std::string, false, true>();
  
    test02<const int[42], true>();
    test02<test_input_range<const int>, true>();
*************** main()
*** 155,160 ****
--- 169,175 ----
    test02<const std::array<int, 3>, true>();
    test02<std::string_view, true>();
    test02<const std::vector<bool>, true>();
+   test02<const std::string, true>();
  
    test03();
    test04();
