diff -Nrcpad gcc-14-20250801/LAST_UPDATED gcc-14-20250808/LAST_UPDATED
*** gcc-14-20250801/LAST_UPDATED	Fri Aug  1 22:34:23 2025
--- gcc-14-20250808/LAST_UPDATED	Fri Aug  8 22:34:21 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 000138675af3e1ee587b0fa17709ea62590860cb
--- 1 ----
! Obtained from git: releases/gcc-14 revision b471cfe61cc586877b40ed3c2dd39583d9ef2e5a
diff -Nrcpad gcc-14-20250801/MD5SUMS gcc-14-20250808/MD5SUMS
*** gcc-14-20250801/MD5SUMS	Fri Aug  1 22:34:27 2025
--- gcc-14-20250808/MD5SUMS	Fri Aug  8 22:34:24 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20250801.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-20250808.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
! 68a4e427070a5e6b0eaa48003f9b5254  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! e0c04b53b9db55c1dec224d9c5829b3e  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 541,547 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 058630b81d86294164f5a2265328985f  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
! 2f5ccef09bd82ec779ad9b1e3fd7f9a0  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-
*** 3154,3160 ****
  5c99106819e8051c3581d5098616d0dd  gcc/c-family/c-ada-spec.cc
  ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
  d8e1cd0b904797f173e2493caaa19e03  gcc/c-family/c-attribs.cc
! e30283cc72b82ecd4f038fd07b956cd8  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
--- 3154,3160 ----
  5c99106819e8051c3581d5098616d0dd  gcc/c-family/c-ada-spec.cc
  ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
  d8e1cd0b904797f173e2493caaa19e03  gcc/c-family/c-attribs.cc
! 9f727c0677dcaf1e612c92a4d9d4e41b  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
*************** d36a2aabdf8da39363d9be0efef739b0  gcc/co
*** 5361,5367 ****
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! 1970e72364ae521c8584aad92f4045d7  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5361,5367 ----
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! a3203da92553f467fc82a8e049357887  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** eb0e2e62caf98260cc2641216d140ae9  gcc/cp
*** 5401,5407 ****
  dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
  cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
  c2cee7941d7a9d85eb87f70b7f8495ac  gcc/cp/config-lang.in
! a4d0ba45a274fa81e64ab6fe7c46fcb9  gcc/cp/constexpr.cc
  e2342416928d82aea826d50f04c9f56c  gcc/cp/constraint.cc
  7f4cf1f0f93d7aa0443c94e023845d1c  gcc/cp/contracts.cc
  5b547c5fd539f8a214ed271c5a475a85  gcc/cp/contracts.h
--- 5401,5407 ----
  dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
  cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
  c2cee7941d7a9d85eb87f70b7f8495ac  gcc/cp/config-lang.in
! 1abc3862d52867ac649b0fd6504aaa9e  gcc/cp/constexpr.cc
  e2342416928d82aea826d50f04c9f56c  gcc/cp/constraint.cc
  7f4cf1f0f93d7aa0443c94e023845d1c  gcc/cp/contracts.cc
  5b547c5fd539f8a214ed271c5a475a85  gcc/cp/contracts.h
*************** f3cd4a37afdd5c50fd88f8bea73656f2  gcc/gi
*** 6071,6077 ****
  9061d044f3fa87c56e4207cfed15dbd4  gcc/gimple-loop-versioning.cc
  5aa7e08e0bae2dfcbc188dcbbf48e035  gcc/gimple-low.cc
  1011dfdbac8762024379fe999e10572d  gcc/gimple-low.h
! 557c7c8d1074bd0ac26035b6742d2578  gcc/gimple-lower-bitint.cc
  0da9234d337390e5ca66679b3e055deb  gcc/gimple-lower-bitint.h
  77bf05ef21f77c3ea4b0b145cd57240b  gcc/gimple-match-exports.cc
  52905dc6829d45f26f8fbd85e434b469  gcc/gimple-match-head.cc
--- 6071,6077 ----
  9061d044f3fa87c56e4207cfed15dbd4  gcc/gimple-loop-versioning.cc
  5aa7e08e0bae2dfcbc188dcbbf48e035  gcc/gimple-low.cc
  1011dfdbac8762024379fe999e10572d  gcc/gimple-low.h
! d876d8563a973f807a18aa72d2b087d9  gcc/gimple-lower-bitint.cc
  0da9234d337390e5ca66679b3e055deb  gcc/gimple-lower-bitint.h
  77bf05ef21f77c3ea4b0b145cd57240b  gcc/gimple-match-exports.cc
  52905dc6829d45f26f8fbd85e434b469  gcc/gimple-match-head.cc
*************** a0fa65b26e495830df197a8490a2fb49  gcc/gi
*** 6108,6114 ****
  b23005df27991a89a55c9670c9293f53  gcc/gimple-ssa-sccopy.cc
  40a9709570d315119e4151e29a6e5235  gcc/gimple-ssa-split-paths.cc
  eed653cc89b2d50ae8546390d2926e4c  gcc/gimple-ssa-sprintf.cc
! 599f3cc82024b9955e1ee9c02cdb0822  gcc/gimple-ssa-store-merging.cc
  3c3902ae746a3d7ccb9ae378b53f1c8a  gcc/gimple-ssa-strength-reduction.cc
  b1a13207e2b21166386884cd2c732512  gcc/gimple-ssa-warn-access.cc
  972380becf9146f7df932ff8948f87c1  gcc/gimple-ssa-warn-access.h
--- 6108,6114 ----
  b23005df27991a89a55c9670c9293f53  gcc/gimple-ssa-sccopy.cc
  40a9709570d315119e4151e29a6e5235  gcc/gimple-ssa-split-paths.cc
  eed653cc89b2d50ae8546390d2926e4c  gcc/gimple-ssa-sprintf.cc
! ecaaf97bc27ae0cf8f6d9015fd66e774  gcc/gimple-ssa-store-merging.cc
  3c3902ae746a3d7ccb9ae378b53f1c8a  gcc/gimple-ssa-strength-reduction.cc
  b1a13207e2b21166386884cd2c732512  gcc/gimple-ssa-warn-access.cc
  972380becf9146f7df932ff8948f87c1  gcc/gimple-ssa-warn-access.h
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8060,8066 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! eed9b0b9640c5c3c800134b16ae4e8bb  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 8060,8066 ----
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 008282b9c5196ffbb58c87124d663742  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** e758e9f4f3e6f53d756360fda966fadd  gcc/te
*** 10700,10705 ****
--- 10700,10706 ----
  76fa33c917471922e94d50763fda451c  gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
  273f580aad8918060378ff0f64998aa7  gcc/testsuite/c-c++-common/Walloca-larger-than.c
  afef2f2a384ff98fc41df320bb6a2419  gcc/testsuite/c-c++-common/Warray-bounds-10.c
+ a1f750193e9b002ef72772e807bd3a32  gcc/testsuite/c-c++-common/Warray-bounds-11.c
  26f47ca8f4d16158af229f5e0181ba58  gcc/testsuite/c-c++-common/Warray-bounds-2.c
  735f67562fd278388dfba29a23faba55  gcc/testsuite/c-c++-common/Warray-bounds-3.c
  bd8f64abbcab43dedc51e54273763e0c  gcc/testsuite/c-c++-common/Warray-bounds-4.c
*************** b5f4f9a8f5933754f321648f67e54dac  gcc/te
*** 20179,20184 ****
--- 20180,20187 ----
  1a30baf82f09866d37d6e96a76379f47  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic16.C
  b64753c380df7428569f8befeb1510e8  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic17.C
  8fe226b0e900985b1f76643e8aaf737b  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic18.C
+ ba2b3d3cd6f23028bc237ee7025256fb  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic19.C
+ dd98bfd651ed53723db105ea6def894e  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1a.C
  6a856dd4720aaf5ca7ba6e7422f849a9  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic2.C
  6ddf97a1878f89c02ca0c76de5f0f08f  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic3.C
  28c0eaf9ba35a479b5d50ddb90e7dc07  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic4.C
*************** c18469175af3ebdf263d34347ebe2d40  gcc/te
*** 41179,41184 ****
--- 41182,41188 ----
  d217543f954eb3f31e246355824f653a  gcc/testsuite/gcc.dg/bitint-120.c
  7d02ff9539e664bbbcfc85b464d916c1  gcc/testsuite/gcc.dg/bitint-123.c
  11e6d8eaf7b16f3f8aeaf1c2e626996f  gcc/testsuite/gcc.dg/bitint-124.c
+ c446cf331d60d19eea3950d7f444f8b3  gcc/testsuite/gcc.dg/bitint-125.c
  aa6e262f1d508ec048e76ac4af6675a4  gcc/testsuite/gcc.dg/bitint-13.c
  e6db29256563268a3c327706e78c79a4  gcc/testsuite/gcc.dg/bitint-14.c
  c748706240385773f27caba61cbbcbd8  gcc/testsuite/gcc.dg/bitint-15.c
*************** a3d075dd1b96232581aa40c9e02294e1  gcc/te
*** 46947,46952 ****
--- 46951,46957 ----
  212cef6b05e312dbd1f377cf4e35ab99  gcc/testsuite/gcc.dg/pr120048.c
  9444444b4f048eadd4b6a2d7592f5fca  gcc/testsuite/gcc.dg/pr120480.c
  4a9d9632d82cf6c4f4f4acbad8ab018d  gcc/testsuite/gcc.dg/pr120638.c
+ 7032b52dc2dd1e6cab514293c2d0b276  gcc/testsuite/gcc.dg/pr121322.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** e84ed2b9613e7dc3e0944e6f8c30bd59  gcc/te
*** 49946,49951 ****
--- 49951,49957 ----
  d74952b1e73d78295fc0ccb16c0a8b6f  gcc/testsuite/gcc.dg/torture/bitint-74.c
  896ba6298bac21304239e8c0dcbadbd9  gcc/testsuite/gcc.dg/torture/bitint-76.c
  cf2a2337cf009457d836bd48e49c0af3  gcc/testsuite/gcc.dg/torture/bitint-8.c
+ 368a2f51dfadfa4e9fbd0017065b6a83  gcc/testsuite/gcc.dg/torture/bitint-85.c
  4d03bd57dac0507a44cc15b9afacd8a3  gcc/testsuite/gcc.dg/torture/bitint-9.c
  cf9904d4026e69bddaf745011bbaaab3  gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
  c3c39411545c83e500562780b71883b6  gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
*************** cefdc2a9eb13f2095c81dff3665fcbe2  gcc/te
*** 54110,54115 ****
--- 54116,54122 ----
  f7352e346071f20c88b4cda3aefaf007  gcc/testsuite/gcc.dg/ubsan/pr112709-2.c
  07fea3b40997114ec3071642a71f05f0  gcc/testsuite/gcc.dg/ubsan/pr112741.c
  9d35f4aafed7065254d5bcbd8e4b3469  gcc/testsuite/gcc.dg/ubsan/pr113012.c
+ cae65f7755e556ca92edd7478099c942  gcc/testsuite/gcc.dg/ubsan/pr120837.c
  8b53119c2975ba4eb7e0a8a3f21049bc  gcc/testsuite/gcc.dg/ubsan/pr63690.c
  7a3b89a11b570c0d6817707c745a9fba  gcc/testsuite/gcc.dg/ubsan/pr67279.c
  c9a455b03d901e306e1836d50e9e37d6  gcc/testsuite/gcc.dg/ubsan/pr67662.c
*************** f1ea877f35ca466bb967858a715d4f6c  gcc/te
*** 80320,80326 ****
  c02928696f09c7fc9c99174083ecb49c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-2.c
  04b3fc34bfccb1856530015004e53b0f  gcc/testsuite/gcc.target/powerpc/builtin-fegetround.c
  660ec5b28bd11c4d01e9d4d45e4670fa  gcc/testsuite/gcc.target/powerpc/builtin-vec-sums-be-int.c
! ac5fc8abef0ee25e3006e84d9ec6e994  gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c
  a8f9adaf01b9c4605ccf3a2b91395d9a  gcc/testsuite/gcc.target/powerpc/builtins-1-be-folded.c
  d7a191d70b9b9996b4b19f79964cf6c2  gcc/testsuite/gcc.target/powerpc/builtins-1-le-folded.c
  3630b13056a134afac9072861304e1b7  gcc/testsuite/gcc.target/powerpc/builtins-1-p10-runnable.c
--- 80327,80333 ----
  c02928696f09c7fc9c99174083ecb49c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-2.c
  04b3fc34bfccb1856530015004e53b0f  gcc/testsuite/gcc.target/powerpc/builtin-fegetround.c
  660ec5b28bd11c4d01e9d4d45e4670fa  gcc/testsuite/gcc.target/powerpc/builtin-vec-sums-be-int.c
! 0a0b275d0be04b242c475f65eea6a60a  gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c
  a8f9adaf01b9c4605ccf3a2b91395d9a  gcc/testsuite/gcc.target/powerpc/builtins-1-be-folded.c
  d7a191d70b9b9996b4b19f79964cf6c2  gcc/testsuite/gcc.target/powerpc/builtins-1-le-folded.c
  3630b13056a134afac9072861304e1b7  gcc/testsuite/gcc.target/powerpc/builtins-1-p10-runnable.c
diff -Nrcpad gcc-14-20250801/gcc/DATESTAMP gcc-14-20250808/gcc/DATESTAMP
*** gcc-14-20250801/gcc/DATESTAMP	Fri Aug  1 22:32:37 2025
--- gcc-14-20250808/gcc/DATESTAMP	Fri Aug  8 22:32:31 2025
***************
*** 1 ****
! 20250801
--- 1 ----
! 20250808
diff -Nrcpad gcc-14-20250801/gcc/c-family/c-common.cc gcc-14-20250808/gcc/c-family/c-common.cc
*** gcc-14-20250801/gcc/c-family/c-common.cc	Fri Aug  1 22:32:38 2025
--- gcc-14-20250808/gcc/c-family/c-common.cc	Fri Aug  8 22:32:41 2025
*************** pointer_int_sum (location_t loc, enum tr
*** 3420,3439 ****
  	 an overflow error if the constant is negative but INTOP is not.  */
        && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (intop))
  	  || (TYPE_PRECISION (TREE_TYPE (intop))
! 	      == TYPE_PRECISION (TREE_TYPE (ptrop)))))
      {
!       enum tree_code subcode = resultcode;
!       tree int_type = TREE_TYPE (intop);
!       if (TREE_CODE (intop) == MINUS_EXPR)
! 	subcode = (subcode == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR);
!       /* Convert both subexpression types to the type of intop,
! 	 because weird cases involving pointer arithmetic
! 	 can result in a sum or difference with different type args.  */
!       ptrop = build_binary_op (EXPR_LOCATION (TREE_OPERAND (intop, 1)),
! 			       subcode, ptrop,
! 			       convert (int_type, TREE_OPERAND (intop, 1)),
! 			       true);
!       intop = convert (int_type, TREE_OPERAND (intop, 0));
      }
  
    /* Convert the integer argument to a type the same size as sizetype
--- 3420,3460 ----
  	 an overflow error if the constant is negative but INTOP is not.  */
        && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (intop))
  	  || (TYPE_PRECISION (TREE_TYPE (intop))
! 	      == TYPE_PRECISION (TREE_TYPE (ptrop))))
!       && TYPE_PRECISION (TREE_TYPE (intop)) <= TYPE_PRECISION (sizetype))
      {
!       tree intop0 = TREE_OPERAND (intop, 0);
!       tree intop1 = TREE_OPERAND (intop, 1);
!       if (TYPE_PRECISION (TREE_TYPE (intop)) != TYPE_PRECISION (sizetype)
! 	  || TYPE_UNSIGNED (TREE_TYPE (intop)) != TYPE_UNSIGNED (sizetype))
! 	{
! 	  tree optype = c_common_type_for_size (TYPE_PRECISION (sizetype),
! 						TYPE_UNSIGNED (sizetype));
! 	  intop0 = convert (optype, intop0);
! 	  intop1 = convert (optype, intop1);
! 	}
!       tree t = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (intop0), intop0,
! 				convert (TREE_TYPE (intop0), size_exp));
!       intop0 = convert (sizetype, t);
!       if (TREE_OVERFLOW_P (intop0) && !TREE_OVERFLOW (t))
! 	intop0 = wide_int_to_tree (TREE_TYPE (intop0), wi::to_wide (intop0));
!       t = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (intop1), intop1,
! 			   convert (TREE_TYPE (intop1), size_exp));
!       intop1 = convert (sizetype, t);
!       if (TREE_OVERFLOW_P (intop1) && !TREE_OVERFLOW (t))
! 	intop1 = wide_int_to_tree (TREE_TYPE (intop1), wi::to_wide (intop1));
!       intop = build_binary_op (EXPR_LOCATION (intop), TREE_CODE (intop),
! 			       intop0, intop1, true);
! 
!       /* Create the sum or difference.  */
!       if (resultcode == MINUS_EXPR)
! 	intop = fold_build1_loc (loc, NEGATE_EXPR, sizetype, intop);
! 
!       ret = fold_build_pointer_plus_loc (loc, ptrop, intop);
! 
!       fold_undefer_and_ignore_overflow_warnings ();
! 
!       return ret;
      }
  
    /* Convert the integer argument to a type the same size as sizetype
diff -Nrcpad gcc-14-20250801/gcc/cp/ChangeLog gcc-14-20250808/gcc/cp/ChangeLog
*** gcc-14-20250801/gcc/cp/ChangeLog	Fri Aug  1 22:32:41 2025
--- gcc-14-20250808/gcc/cp/ChangeLog	Fri Aug  8 22:32:42 2025
***************
*** 1,3 ****
--- 1,11 ----
+ 2025-08-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-07-31  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120800
+ 	* constexpr.cc (cxx_eval_vec_init_1): Suppress access control.
+ 
  2025-07-26  Jason Merrill  <jason@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20250801/gcc/cp/constexpr.cc gcc-14-20250808/gcc/cp/constexpr.cc
*** gcc-14-20250801/gcc/cp/constexpr.cc	Fri Aug  1 22:32:41 2025
--- gcc-14-20250808/gcc/cp/constexpr.cc	Fri Aug  8 22:32:42 2025
*************** cxx_dynamic_cast_fn_p (tree fndecl)
*** 2440,2446 ****
  {
    return (cxx_dialect >= cxx20
  	  && id_equal (DECL_NAME (fndecl), "__dynamic_cast")
! 	  && CP_DECL_CONTEXT (fndecl) == abi_node);
  }
  
  /* Often, we have an expression in the form of address + offset, e.g.
--- 2440,2450 ----
  {
    return (cxx_dialect >= cxx20
  	  && id_equal (DECL_NAME (fndecl), "__dynamic_cast")
! 	  && CP_DECL_CONTEXT (fndecl) == abi_node
! 	  /* Only consider implementation-detail __dynamic_cast calls that
! 	     correspond to a dynamic_cast, and ignore direct calls to
! 	     abi::__dynamic_cast.  */
! 	  && DECL_ARTIFICIAL (fndecl));
  }
  
  /* Often, we have an expression in the form of address + offset, e.g.
diff -Nrcpad gcc-14-20250801/gcc/gimple-lower-bitint.cc gcc-14-20250808/gcc/gimple-lower-bitint.cc
*** gcc-14-20250801/gcc/gimple-lower-bitint.cc	Fri Aug  1 22:32:42 2025
--- gcc-14-20250808/gcc/gimple-lower-bitint.cc	Fri Aug  8 22:32:43 2025
*************** enum bitint_prec_kind {
*** 76,82 ****
  /* Caches to speed up bitint_precision_kind.  */
  
  static int small_max_prec, mid_min_prec, large_min_prec, huge_min_prec;
! static int limb_prec;
  
  /* Categorize _BitInt(PREC) as small, middle, large or huge.  */
  
--- 76,82 ----
  /* Caches to speed up bitint_precision_kind.  */
  
  static int small_max_prec, mid_min_prec, large_min_prec, huge_min_prec;
! static int limb_prec, abi_limb_prec;
  
  /* Categorize _BitInt(PREC) as small, middle, large or huge.  */
  
*************** bitint_precision_kind (int prec)
*** 106,111 ****
--- 106,114 ----
      large_min_prec = MAX_FIXED_MODE_SIZE + 1;
    if (!limb_prec)
      limb_prec = GET_MODE_PRECISION (limb_mode);
+   if (!abi_limb_prec)
+     abi_limb_prec
+       = GET_MODE_PRECISION (as_a <scalar_int_mode> (info.abi_limb_mode));
    if (!huge_min_prec)
      {
        if (4 * limb_prec >= MAX_FIXED_MODE_SIZE)
*************** range_to_prec (tree op, gimple *stmt)
*** 2213,2219 ****
     from that precision, if it is negative, the operand is sign-extended
     from -*PREC.  If PREC_STORED is NULL, it is the toplevel call,
     otherwise *PREC_STORED is prec from the innermost call without
!    range optimizations.  */
  
  tree
  bitint_large_huge::handle_operand_addr (tree op, gimple *stmt,
--- 2216,2222 ----
     from that precision, if it is negative, the operand is sign-extended
     from -*PREC.  If PREC_STORED is NULL, it is the toplevel call,
     otherwise *PREC_STORED is prec from the innermost call without
!    range optimizations (0 for uninitialized SSA_NAME).  */
  
  tree
  bitint_large_huge::handle_operand_addr (tree op, gimple *stmt,
*************** bitint_large_huge::handle_operand_addr (
*** 2318,2324 ****
  	    {
  	      *prec = TYPE_UNSIGNED (TREE_TYPE (op)) ? limb_prec : -limb_prec;
  	      if (prec_stored)
! 		*prec_stored = *prec;
  	      tree var = create_tmp_var (m_limb_type);
  	      TREE_ADDRESSABLE (var) = 1;
  	      ret = build_fold_addr_expr (var);
--- 2321,2327 ----
  	    {
  	      *prec = TYPE_UNSIGNED (TREE_TYPE (op)) ? limb_prec : -limb_prec;
  	      if (prec_stored)
! 		*prec_stored = 0;
  	      tree var = create_tmp_var (m_limb_type);
  	      TREE_ADDRESSABLE (var) = 1;
  	      ret = build_fold_addr_expr (var);
*************** bitint_large_huge::handle_operand_addr (
*** 2346,2351 ****
--- 2349,2356 ----
  		  tree rhs_type = TREE_TYPE (rhs1);
  		  int prec_stored_val = 0;
  		  ret = handle_operand_addr (rhs1, g, &prec_stored_val, prec);
+ 		  if (prec_stored)
+ 		    *prec_stored = prec_stored_val;
  		  if (TYPE_PRECISION (lhs_type) > TYPE_PRECISION (rhs_type))
  		    {
  		      if (TYPE_UNSIGNED (lhs_type)
*************** bitint_large_huge::handle_operand_addr (
*** 2354,2360 ****
  		    }
  		  else
  		    {
! 		      if (*prec > 0 && *prec < TYPE_PRECISION (lhs_type))
  			;
  		      else if (TYPE_UNSIGNED (lhs_type))
  			{
--- 2359,2367 ----
  		    }
  		  else
  		    {
! 		      if (prec_stored_val == 0)
! 			/* Non-widening cast of uninitialized value.  */;
! 		      else if (*prec > 0 && *prec < TYPE_PRECISION (lhs_type))
  			;
  		      else if (TYPE_UNSIGNED (lhs_type))
  			{
*************** static unsigned int
*** 6066,6072 ****
  gimple_lower_bitint (void)
  {
    small_max_prec = mid_min_prec = large_min_prec = huge_min_prec = 0;
!   limb_prec = 0;
  
    unsigned int i;
    for (i = 0; i < num_ssa_names; ++i)
--- 6073,6079 ----
  gimple_lower_bitint (void)
  {
    small_max_prec = mid_min_prec = large_min_prec = huge_min_prec = 0;
!   limb_prec = abi_limb_prec = 0;
  
    unsigned int i;
    for (i = 0; i < num_ssa_names; ++i)
*************** gimple_lower_bitint (void)
*** 7024,7030 ****
  		       from smaller number.  */
  		    min_prec = prec;
  		  else
! 		    min_prec = CEIL (min_prec, limb_prec) * limb_prec;
  		  if (min_prec == 0)
  		    c = NULL_TREE;
  		  else if (min_prec == prec)
--- 7031,7050 ----
  		       from smaller number.  */
  		    min_prec = prec;
  		  else
! 		    {
! 		      min_prec = CEIL (min_prec, limb_prec) * limb_prec;
! 		      if (min_prec > (unsigned) limb_prec
! 			  && abi_limb_prec > limb_prec)
! 			{
! 			  /* For targets with ABI limb precision higher than
! 			     limb precision round to ABI limb precision,
! 			     otherwise c can contain padding bits.  */
! 			  min_prec
! 			    = CEIL (min_prec, abi_limb_prec) * abi_limb_prec;
! 			  if (min_prec > prec - rem - 2 * limb_prec)
! 			    min_prec = prec;
! 			}
! 		    }
  		  if (min_prec == 0)
  		    c = NULL_TREE;
  		  else if (min_prec == prec)
diff -Nrcpad gcc-14-20250801/gcc/gimple-ssa-store-merging.cc gcc-14-20250808/gcc/gimple-ssa-store-merging.cc
*** gcc-14-20250801/gcc/gimple-ssa-store-merging.cc	Fri Aug  1 22:32:42 2025
--- gcc-14-20250808/gcc/gimple-ssa-store-merging.cc	Fri Aug  8 22:32:43 2025
*************** find_bswap_or_nop (gimple *stmt, struct
*** 1057,1062 ****
--- 1057,1064 ----
  		      if (count <= range / BITS_PER_MARKER)
  			{
  			  count = (count + i) * BITS_PER_MARKER % range;
+ 			  if (!count)
+ 			    return NULL;
  			  break;
  			}
  		      else
diff -Nrcpad gcc-14-20250801/gcc/testsuite/ChangeLog gcc-14-20250808/gcc/testsuite/ChangeLog
*** gcc-14-20250801/gcc/testsuite/ChangeLog	Fri Aug  1 22:32:46 2025
--- gcc-14-20250808/gcc/testsuite/ChangeLog	Fri Aug  8 22:32:44 2025
***************
*** 1,3 ****
--- 1,11 ----
+ 2025-08-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-07-31  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120800
+ 	* g++.dg/cpp0x/constexpr-array30.C: New test.
+ 
  2025-07-31  Spencer Abson  <spencer.abson@arm.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20250801/gcc/testsuite/c-c++-common/Warray-bounds-11.c gcc-14-20250808/gcc/testsuite/c-c++-common/Warray-bounds-11.c
*** gcc-14-20250801/gcc/testsuite/c-c++-common/Warray-bounds-11.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250808/gcc/testsuite/c-c++-common/Warray-bounds-11.c	Fri Aug  8 22:32:45 2025
***************
*** 0 ****
--- 1,21 ----
+ /* PR c++/120954 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Warray-bounds=2" } */
+ 
+ static const int a[32] = { 11, 12, 13, 14, 15 };
+ static const int b[32] = { 21, 22, 23, 24, 25 };
+ static const int c[32] = { 31, 32, 33, 34, 35 };
+ static const int d[32] = { 111, 112, 113, 114, 115 };
+ static const int e[32] = { 121, 122, 123, 124, 125 };
+ static const int f[32] = { 131, 132, 133, 134, 135 };
+ 
+ int
+ foo (int x, int y)
+ {
+   int r = 0;
+   if (x >= 0 && x < 32)
+     r = (y >= 4 ? (y >= 0x65 ? a : b ) : c)[x];
+   else if (x >= 0x100 && x < 0x120)
+     r = (y >= 4 ? (y >= 0x65 ? d : e ) : f)[x - 0x100];
+   return r;
+ }
diff -Nrcpad gcc-14-20250801/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic19.C gcc-14-20250808/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic19.C
*** gcc-14-20250801/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic19.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20250808/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic19.C	Fri Aug  8 22:32:50 2025
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/120620
+ // { dg-do compile }
+ 
+ #include <cxxabi.h>
+ 
+ struct A* a;
+ 
+ void f() {
+   void* const p = abi::__dynamic_cast(&a, 0, 0, 42);
+ }
diff -Nrcpad gcc-14-20250801/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1a.C gcc-14-20250808/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1a.C
*** gcc-14-20250801/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1a.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20250808/gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1a.C	Fri Aug  8 22:32:50 2025
***************
*** 0 ****
--- 1,6 ----
+ // Test that including <cxxabi.h>, whence the actual abi:__dynamic_cast
+ // is declared, doesn't affect our constexpr dynamic_cast handling.
+ // { dg-do compile { target c++20 } }
+ 
+ #include <cxxabi.h>
+ #include "constexpr-dynamic1.C"
diff -Nrcpad gcc-14-20250801/gcc/testsuite/gcc.dg/bitint-125.c gcc-14-20250808/gcc/testsuite/gcc.dg/bitint-125.c
*** gcc-14-20250801/gcc/testsuite/gcc.dg/bitint-125.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250808/gcc/testsuite/gcc.dg/bitint-125.c	Fri Aug  8 22:32:59 2025
***************
*** 0 ****
--- 1,15 ----
+ /* PR tree-optimization/121127 */
+ /* { dg-do compile { target bitint } } */
+ /* { dg-options "-O2 -w" } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 576
+ _BitInt(575)
+ foo (void)
+ {
+   _BitInt(576) d;
+   _BitInt(575) e = d * 42wb;
+   return e;
+ }
+ #else
+ int i;
+ #endif
diff -Nrcpad gcc-14-20250801/gcc/testsuite/gcc.dg/pr121322.c gcc-14-20250808/gcc/testsuite/gcc.dg/pr121322.c
*** gcc-14-20250801/gcc/testsuite/gcc.dg/pr121322.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250808/gcc/testsuite/gcc.dg/pr121322.c	Fri Aug  8 22:33:12 2025
***************
*** 0 ****
--- 1,14 ----
+ /* PR middle-end/121322 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ unsigned long long
+ foo (unsigned long long *p)
+ {
+   unsigned long long a = *p;
+   unsigned long long b = __builtin_bswap64 (a);
+   return ((b << 32)
+ 	  | ((b >> 8) & 0xff000000ULL)
+ 	  | ((b >> 24) & 0xff0000ULL)
+ 	  | ((b >> 40) & 0xff00ULL));
+ }
diff -Nrcpad gcc-14-20250801/gcc/testsuite/gcc.dg/torture/bitint-85.c gcc-14-20250808/gcc/testsuite/gcc.dg/torture/bitint-85.c
*** gcc-14-20250801/gcc/testsuite/gcc.dg/torture/bitint-85.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250808/gcc/testsuite/gcc.dg/torture/bitint-85.c	Fri Aug  8 22:33:13 2025
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do run { target bitint } } */
+ /* { dg-options "-std=c23 -pedantic-errors" } */
+ /* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 1024
+ constexpr _BitInt(1024) d = -541140097068598424394740839221562143161511518875518765552323978870598341733206554363735813878577506997168480201818027232521wb;
+ int c;
+ 
+ static inline void
+ foo (_BitInt(1024) b, _BitInt(1024) *r)
+ {
+   if (c)
+     b = 0;
+   *r = b;
+ }
+ 
+ [[gnu::noipa]] void
+ bar (_BitInt(1024) y)
+ {
+   if (y != d)
+     __builtin_abort ();
+ }
+ #endif
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 1024
+   _BitInt(1024) x;
+   foo (d, &x);
+   bar (x);
+ #endif
+ }
diff -Nrcpad gcc-14-20250801/gcc/testsuite/gcc.dg/ubsan/pr120837.c gcc-14-20250808/gcc/testsuite/gcc.dg/ubsan/pr120837.c
*** gcc-14-20250801/gcc/testsuite/gcc.dg/ubsan/pr120837.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250808/gcc/testsuite/gcc.dg/ubsan/pr120837.c	Fri Aug  8 22:33:15 2025
***************
*** 0 ****
--- 1,32 ----
+ /* PR c/120837 */
+ /* { dg-do run } */
+ /* { dg-options "-O1 -fsanitize=undefined -fno-sanitize-recover=undefined" } */
+ 
+ [[gnu::noipa]] void
+ bar (void **x, void **y)
+ {
+   x[0] = 0;
+   x[1] = 0;
+   x[2] = 0;
+   y[0] = 0;
+   y[1] = 0;
+   y[2] = 0;
+   y[3] = 0;
+   y[4] = 0;
+ }
+ 
+ [[gnu::noipa]] void *
+ foo (int x, int y)
+ {
+   void *a[3];
+   void *b[5];
+   bar (a, b);
+   return (x > y ? b : a)[y - 1];
+ }
+ 
+ int
+ main ()
+ {
+   if (foo (2, 1) != 0)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-14-20250801/gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c gcc-14-20250808/gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c
*** gcc-14-20250801/gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c	Fri Aug  1 22:33:18 2025
--- gcc-14-20250808/gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c	Fri Aug  8 22:33:45 2025
*************** int
*** 27,36 ****
  main () {
    int i;
    signed long sl;
!   signed char sc, expected_sc;
!   signed short ss, expected_ss;
!   signed int si, expected_si;
!   signed long long int sll, expected_sll;
    signed char *psc;
    signed short *pss;
    signed int *psi;
--- 27,36 ----
  main () {
    int i;
    signed long sl;
!   signed char sc[2], expected_sc;
!   signed short ss[2], expected_ss;
!   signed int si[2], expected_si;
!   signed long long int sll[2], expected_sll;
    signed char *psc;
    signed short *pss;
    signed int *psi;
*************** main () {
*** 41,96 ****
    printf("Data to store [%d] = 0x%llx %llx\n", i, val.ull[1], val.ull[0]);
  #endif
  
!   psc = &sc;
!   pss = &ss;
!   psi = &si;
!   psll = &sll;
  
    sl = 1;
!   sc = 0xA1;
    expected_sc = 0xA1;
    __builtin_altivec_tr_stxvrbx (store_data, sl, psc);
  
!   if (expected_sc != sc & 0xFF)
  #if DEBUG
      printf(" ERROR: Signed char = 0x%x doesn't match expected value 0x%x\n",
! 	   sc & 0xFF, expected_sc);
  #else
      abort();
  #endif
  
!   ss = 0x52;
    expected_ss = 0x1752;
    __builtin_altivec_tr_stxvrhx (store_data, sl, pss);
  
!   if (expected_ss != ss & 0xFFFF)
  #if DEBUG
      printf(" ERROR: Signed short = 0x%x doesn't match expected value 0x%x\n",
! 	   ss, expected_ss) & 0xFFFF;
  #else
      abort();
  #endif
  
!   si = 0x21;
    expected_si = 0x54321721;
    __builtin_altivec_tr_stxvrwx (store_data, sl, psi);
  
!   if (expected_si != si)
  #if DEBUG
      printf(" ERROR: Signed int = 0x%x doesn't match expected value 0x%x\n",
! 	   si, expected_si);
  #else
      abort();
  #endif
  
!   sll = 0x12FFULL;
    expected_sll = 0xdcba9876543217FF;
    __builtin_altivec_tr_stxvrdx (store_data, sl, psll);
  
!   if (expected_sll != sll)
  #if DEBUG
      printf(" ERROR: Signed long long int = 0x%llx doesn't match expected value 0x%llx\n",
! 	   sll, expected_sll);
  #else
      abort();
  #endif
--- 41,96 ----
    printf("Data to store [%d] = 0x%llx %llx\n", i, val.ull[1], val.ull[0]);
  #endif
  
!   psc = &sc[0];
!   pss = &ss[0];
!   psi = &si[0];
!   psll = &sll[0];
  
    sl = 1;
!   sc[0] = 0xA1;
    expected_sc = 0xA1;
    __builtin_altivec_tr_stxvrbx (store_data, sl, psc);
  
!   if (expected_sc != sc[0] & 0xFF)
  #if DEBUG
      printf(" ERROR: Signed char = 0x%x doesn't match expected value 0x%x\n",
! 	   sc[0] & 0xFF, expected_sc);
  #else
      abort();
  #endif
  
!   ss[0] = 0x52;
    expected_ss = 0x1752;
    __builtin_altivec_tr_stxvrhx (store_data, sl, pss);
  
!   if (expected_ss != ss[0] & 0xFFFF)
  #if DEBUG
      printf(" ERROR: Signed short = 0x%x doesn't match expected value 0x%x\n",
! 	   ss[0], expected_ss) & 0xFFFF;
  #else
      abort();
  #endif
  
!   si[0] = 0x21;
    expected_si = 0x54321721;
    __builtin_altivec_tr_stxvrwx (store_data, sl, psi);
  
!   if (expected_si != si[0])
  #if DEBUG
      printf(" ERROR: Signed int = 0x%x doesn't match expected value 0x%x\n",
! 	   si[0], expected_si);
  #else
      abort();
  #endif
  
!   sll[0] = 0x12FFULL;
    expected_sll = 0xdcba9876543217FF;
    __builtin_altivec_tr_stxvrdx (store_data, sl, psll);
  
!   if (expected_sll != sll[0])
  #if DEBUG
      printf(" ERROR: Signed long long int = 0x%llx doesn't match expected value 0x%llx\n",
! 	   sll[0], expected_sll);
  #else
      abort();
  #endif
