diff -Nrcpad gcc-13-20260610/LAST_UPDATED gcc-13-20260617/LAST_UPDATED
*** gcc-13-20260610/LAST_UPDATED	Wed Jun 10 22:32:19 2026
--- gcc-13-20260617/LAST_UPDATED	Wed Jun 17 22:32:18 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-13 revision 1990e6544b9f0db39c470b999c32d2ecdd419f46
--- 1 ----
! Obtained from git: releases/gcc-13 revision 08a057cff056804824bb72c6ac90751659a9d2a5
diff -Nrcpad gcc-13-20260610/MD5SUMS gcc-13-20260617/MD5SUMS
*** gcc-13-20260610/MD5SUMS	Wed Jun 10 22:32:23 2026
--- gcc-13-20260617/MD5SUMS	Wed Jun 17 22:32:22 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-13-20260610.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-13-20260617.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 21,27 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! ab87f83859a65321e6fdae474c838778  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! b6f2c266029639e45791548f9066c514  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 475,481 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! d9e99edce34e39a4accd4e4aa65a15ad  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 475,481 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 106a3d16ef2a7ea0a9c9e0b7b34163f4  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 510,516 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 6a3c00dc56ec6194c323b85fe9fe20d2  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 510,516 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 9e18c2f16a0227ea77a10e14aa69a6f1  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 522,528 ****
  f6d47a542d432aed7e7eaaecb71d3a4c  gcc/acinclude.m4
  6526979dd900a0b58b7691b478a91fec  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 8c8e66673dd995bed123e31eaaac5c6c  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 522,528 ----
  f6d47a542d432aed7e7eaaecb71d3a4c  gcc/acinclude.m4
  6526979dd900a0b58b7691b478a91fec  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 9970d44973ad1be2fd0f48e732d648a4  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** c3ab3d8980033cd869c1c27b318115ce  gcc/co
*** 3541,3547 ****
  9126e9ec7dee9b9d66f6893bb9926647  gcc/config/avr/avr-passes.def
  0e3f58ff86af5534419a0e0fb1a552a1  gcc/config/avr/avr-protos.h
  55c51229f13ced0bdddbfd397c9a57d4  gcc/config/avr/avr-stdint.h
! 86ba0b159451932a8735d4422011f882  gcc/config/avr/avr.cc
  800f7501f0eacfee1c1b717e491085b2  gcc/config/avr/avr.h
  43fee9a758fe7d37f8c47f01e9eb6fad  gcc/config/avr/avr.md
  154dcf10de2f21666b4516257fbcecd2  gcc/config/avr/avr.opt
--- 3541,3547 ----
  9126e9ec7dee9b9d66f6893bb9926647  gcc/config/avr/avr-passes.def
  0e3f58ff86af5534419a0e0fb1a552a1  gcc/config/avr/avr-protos.h
  55c51229f13ced0bdddbfd397c9a57d4  gcc/config/avr/avr-stdint.h
! f5c2f17f7344ec1d55919512ee02ac4e  gcc/config/avr/avr.cc
  800f7501f0eacfee1c1b717e491085b2  gcc/config/avr/avr.h
  43fee9a758fe7d37f8c47f01e9eb6fad  gcc/config/avr/avr.md
  154dcf10de2f21666b4516257fbcecd2  gcc/config/avr/avr.opt
*************** bbcb9180a6500397530127e9345b90fc  gcc/co
*** 4105,4111 ****
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
  8ef085012d9493b632c484a8fb32b403  gcc/config/lm32/uclinux-elf.h
! 8417e1e84ade261be3883c9b991c14a6  gcc/config/loongarch/constraints.md
  db93094f0d4b754b9521b7a08ff59eb3  gcc/config/loongarch/generic.md
  56ef1e2b8eb28fe4018b37a6a9a6f26e  gcc/config/loongarch/genopts/genstr.sh
  9ce5785ab5a5194757c33063bafb644b  gcc/config/loongarch/genopts/loongarch-strings
--- 4105,4111 ----
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
  8ef085012d9493b632c484a8fb32b403  gcc/config/lm32/uclinux-elf.h
! 5a2c3555fd5e58a03702f6cab9bf47a0  gcc/config/loongarch/constraints.md
  db93094f0d4b754b9521b7a08ff59eb3  gcc/config/loongarch/generic.md
  56ef1e2b8eb28fe4018b37a6a9a6f26e  gcc/config/loongarch/genopts/genstr.sh
  9ce5785ab5a5194757c33063bafb644b  gcc/config/loongarch/genopts/loongarch-strings
*************** a5a8ae397bdf9e20c3426ef156508e74  gcc/co
*** 4126,4139 ****
  ae7cfcf36635345c7a6629d3bfbb53d6  gcc/config/loongarch/loongarch-modes.def
  a12887e2d76caaa13e14ecd486af32d8  gcc/config/loongarch/loongarch-opts.cc
  5a7e634f3067a9d7102737f15a2762c2  gcc/config/loongarch/loongarch-opts.h
! 0a2ea88aa9d8b16199a929903fe1420e  gcc/config/loongarch/loongarch-protos.h
  b7e7ae8ebef609fa5b3638fc6d8da01c  gcc/config/loongarch/loongarch-str.h
  1d43515673828076071c491e3cdd6f1f  gcc/config/loongarch/loongarch-tune.h
! 0604e558b65c0a185caf86ec71780386  gcc/config/loongarch/loongarch.cc
  a1b94a398a7e906ba7b8e6f3bc0e7839  gcc/config/loongarch/loongarch.h
! 1092d0af6bbdeeebaf276d6b403a51fc  gcc/config/loongarch/loongarch.md
  a9bcbd6c03a77e0c5c0b70d652aa908e  gcc/config/loongarch/loongarch.opt
! 2f8826252720e1086662bde87ecbe35f  gcc/config/loongarch/predicates.md
  9ae896f20aba612b39f17b74e0e88d42  gcc/config/loongarch/sync.md
  b99456ed262c9decb8e975492dece6b9  gcc/config/loongarch/t-linux
  2cb1531abdf14df62c1e88e14377d454  gcc/config/loongarch/t-loongarch
--- 4126,4139 ----
  ae7cfcf36635345c7a6629d3bfbb53d6  gcc/config/loongarch/loongarch-modes.def
  a12887e2d76caaa13e14ecd486af32d8  gcc/config/loongarch/loongarch-opts.cc
  5a7e634f3067a9d7102737f15a2762c2  gcc/config/loongarch/loongarch-opts.h
! 1300afa201a794ce7aef6311bf010154  gcc/config/loongarch/loongarch-protos.h
  b7e7ae8ebef609fa5b3638fc6d8da01c  gcc/config/loongarch/loongarch-str.h
  1d43515673828076071c491e3cdd6f1f  gcc/config/loongarch/loongarch-tune.h
! 00ff6e894d712223ed852337a52bb181  gcc/config/loongarch/loongarch.cc
  a1b94a398a7e906ba7b8e6f3bc0e7839  gcc/config/loongarch/loongarch.h
! 818998d98333ae2d5c5822cd3d6e8662  gcc/config/loongarch/loongarch.md
  a9bcbd6c03a77e0c5c0b70d652aa908e  gcc/config/loongarch/loongarch.opt
! 1ad122ed816eec75657abe494e2e0b83  gcc/config/loongarch/predicates.md
  9ae896f20aba612b39f17b74e0e88d42  gcc/config/loongarch/sync.md
  b99456ed262c9decb8e975492dece6b9  gcc/config/loongarch/t-linux
  2cb1531abdf14df62c1e88e14377d454  gcc/config/loongarch/t-loongarch
*************** eba9d2541aa4aa5f8a8e7aa169c9d594  gcc/cp
*** 5160,5166 ****
  340bb6c30bc1451bc4e2aee47ac22c19  gcc/cp/name-lookup.h
  8cef47f00b2658d60aa8aeac08d34464  gcc/cp/operators.def
  7037f63acd4161418cc8dcd1d86866e0  gcc/cp/optimize.cc
! 7ce2758a3656c365608f6aab53de2f35  gcc/cp/parser.cc
  fbb3d4644cdc4c0c8d47620a0b3a8094  gcc/cp/parser.h
  e7a3a21dcffac5266160a8db76985b79  gcc/cp/pt.cc
  d03dc5c4f806d6a6841801d7d7d0080c  gcc/cp/ptree.cc
--- 5160,5166 ----
  340bb6c30bc1451bc4e2aee47ac22c19  gcc/cp/name-lookup.h
  8cef47f00b2658d60aa8aeac08d34464  gcc/cp/operators.def
  7037f63acd4161418cc8dcd1d86866e0  gcc/cp/optimize.cc
! e626fa746077024ffde0d8fac5b6b91a  gcc/cp/parser.cc
  fbb3d4644cdc4c0c8d47620a0b3a8094  gcc/cp/parser.h
  e7a3a21dcffac5266160a8db76985b79  gcc/cp/pt.cc
  d03dc5c4f806d6a6841801d7d7d0080c  gcc/cp/ptree.cc
*************** b50077475f8f7a1b64242ec5e01d7784  gcc/ex
*** 5557,5563 ****
  d2189b62c37dd572addf61825a41d344  gcc/exec-tool.in
  10518df9c294e40a2a7660c8d93f39a3  gcc/explow.cc
  16380b9326d8ac062959a6a82043cce3  gcc/explow.h
! efcdb43408c74630692eff921a1cc07f  gcc/expmed.cc
  19036d67b94612828e60a36131f73399  gcc/expmed.h
  3bf4610f6c4a28c419e8f9ed167ceb37  gcc/expr.cc
  a58f8d09aca5337953e4002f8d46ada5  gcc/expr.h
--- 5557,5563 ----
  d2189b62c37dd572addf61825a41d344  gcc/exec-tool.in
  10518df9c294e40a2a7660c8d93f39a3  gcc/explow.cc
  16380b9326d8ac062959a6a82043cce3  gcc/explow.h
! 41127ab9fe308f5a28b81d40dfdcfdd8  gcc/expmed.cc
  19036d67b94612828e60a36131f73399  gcc/expmed.h
  3bf4610f6c4a28c419e8f9ed167ceb37  gcc/expr.cc
  a58f8d09aca5337953e4002f8d46ada5  gcc/expr.h
*************** a11dc84518ffe22131bef7c5c59fb394  gcc/gi
*** 5780,5786 ****
  cd5746fe031b5d538b360fa10b1d17af  gcc/gimple-range-cache.h
  e9fa223929f8020fb122ede18c383ffa  gcc/gimple-range-edge.cc
  63552731dc609ddfd75542482f4ac3f9  gcc/gimple-range-edge.h
! e4f0c00a688b3744a867a1aabeee69fb  gcc/gimple-range-fold.cc
  91c4c0f1e668a1c3844c18cf84d74fce  gcc/gimple-range-fold.h
  630825f89ae6bad2278bb7f7782a3d83  gcc/gimple-range-gori.cc
  83fa369894ed79484edcd88e46e5ff5d  gcc/gimple-range-gori.h
--- 5780,5786 ----
  cd5746fe031b5d538b360fa10b1d17af  gcc/gimple-range-cache.h
  e9fa223929f8020fb122ede18c383ffa  gcc/gimple-range-edge.cc
  63552731dc609ddfd75542482f4ac3f9  gcc/gimple-range-edge.h
! 91ff5174e764b2d567ad99529fa797ad  gcc/gimple-range-fold.cc
  91c4c0f1e668a1c3844c18cf84d74fce  gcc/gimple-range-fold.h
  630825f89ae6bad2278bb7f7782a3d83  gcc/gimple-range-gori.cc
  83fa369894ed79484edcd88e46e5ff5d  gcc/gimple-range-gori.h
*************** a03b4f17862e24c25dc27bd52bf6e4c9  gcc/gi
*** 5796,5802 ****
  5d089e48413b174d906755a37859dc74  gcc/gimple-range.cc
  d3d0bf916b0feeb213e0d274c25a85c9  gcc/gimple-range.h
  09f02da5a2f5cbc14b2967c94d2c1697  gcc/gimple-ssa-backprop.cc
! 8d00f32ff8f171436e955a222205301e  gcc/gimple-ssa-isolate-paths.cc
  749a81e49450342357c075a9b79b8992  gcc/gimple-ssa-nonnull-compare.cc
  11b5e3a1e0c7638d90da5ecf2cdb04e3  gcc/gimple-ssa-split-paths.cc
  e6db658fd173ce4a9dd146d9a796e834  gcc/gimple-ssa-sprintf.cc
--- 5796,5802 ----
  5d089e48413b174d906755a37859dc74  gcc/gimple-range.cc
  d3d0bf916b0feeb213e0d274c25a85c9  gcc/gimple-range.h
  09f02da5a2f5cbc14b2967c94d2c1697  gcc/gimple-ssa-backprop.cc
! 5a2ecb38247ee9993a0364d58ca9730f  gcc/gimple-ssa-isolate-paths.cc
  749a81e49450342357c075a9b79b8992  gcc/gimple-ssa-nonnull-compare.cc
  11b5e3a1e0c7638d90da5ecf2cdb04e3  gcc/gimple-ssa-split-paths.cc
  e6db658fd173ce4a9dd146d9a796e834  gcc/gimple-ssa-sprintf.cc
*************** b66a71357a6149335f63d1d38da0ff9f  gcc/ip
*** 5972,5980 ****
  d4b7959c20a98ff6f25372701739be82  gcc/ipa-inline.h
  bf2c8193144d067992fafe66ec1b66c4  gcc/ipa-modref-tree.cc
  c4370973ef8ca23676e8dd1782308f9c  gcc/ipa-modref-tree.h
! 5a78fdd6a39f4b401e23ae691ae39080  gcc/ipa-modref.cc
  b2fae5a0c725823232307d1ff107c412  gcc/ipa-modref.h
! f73a29a76199a719eea19b3d53ed26fe  gcc/ipa-param-manipulation.cc
  0a0833ceaf3d91577600c81d30513737  gcc/ipa-param-manipulation.h
  7cea60b3666f6942e8ff38e2854bcfc2  gcc/ipa-polymorphic-call.cc
  eeca019a2a20494b0c27fccd9ffa6e38  gcc/ipa-predicate.cc
--- 5972,5980 ----
  d4b7959c20a98ff6f25372701739be82  gcc/ipa-inline.h
  bf2c8193144d067992fafe66ec1b66c4  gcc/ipa-modref-tree.cc
  c4370973ef8ca23676e8dd1782308f9c  gcc/ipa-modref-tree.h
! c587bfd43c92d46a7ed06981d3cceb48  gcc/ipa-modref.cc
  b2fae5a0c725823232307d1ff107c412  gcc/ipa-modref.h
! e21d3914ecb784f21f94c8b81ca0b27c  gcc/ipa-param-manipulation.cc
  0a0833ceaf3d91577600c81d30513737  gcc/ipa-param-manipulation.h
  7cea60b3666f6942e8ff38e2854bcfc2  gcc/ipa-polymorphic-call.cc
  eeca019a2a20494b0c27fccd9ffa6e38  gcc/ipa-predicate.cc
*************** b829ed0032c899e107be2db349c913f3  gcc/ta
*** 7637,7643 ****
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 78e88cb4637c3d2478298604109bfb8a  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 7637,7643 ----
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 972e7a3868dd930e5853b998ffcad8d1  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** ccba3040ed86b5ffae7d72b18f556d1c  gcc/te
*** 16198,16203 ****
--- 16198,16204 ----
  0a9a74fc1be6ebe8c0f8c42d06cbc453  gcc/testsuite/g++.dg/cpp0x/rv-conv2.C
  55bf372aa23fed509d52b517cd46aa98  gcc/testsuite/g++.dg/cpp0x/rv-conv3.C
  889a7002f4d78b4abd44856da792f8dc  gcc/testsuite/g++.dg/cpp0x/rv-copy1.C
+ fa930410478009be16ff5c21544f405c  gcc/testsuite/g++.dg/cpp0x/rv-decl1.C
  de88aaa56b0d394bd02f079bb0f4dddf  gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
  f213598004dcfd0117fecc9593637790  gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C
  589e28fb5e0fffb1d369fc47ca52bcfd  gcc/testsuite/g++.dg/cpp0x/rv-dotstar.C
*************** ef666186552a9562e70783bbdf98ac33  gcc/te
*** 27552,27557 ****
--- 27553,27559 ----
  f298eddbaaad3dfdc15f6cf9683ff08a  gcc/testsuite/g++.dg/torture/pr11911.C
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
+ 0d979e637ca747e39d8182a541458797  gcc/testsuite/g++.dg/torture/pr120987-1.C
  75b55c517ba9c0f47c83851f084cb294  gcc/testsuite/g++.dg/torture/pr121870.C
  fd8e483532e07909315ca8711ef4503b  gcc/testsuite/g++.dg/torture/pr123603.C
  61fcf1bc001bfcf25117da95aaa8edd8  gcc/testsuite/g++.dg/torture/pr124135-1.C
*************** aef01c040da8abd2a1e547ed6a07eb5a  gcc/te
*** 47900,47908 ****
--- 47902,47915 ----
  e23df6b1422011499b9a500d2bf25add  gcc/testsuite/gcc.dg/torture/pr120944.c
  d41266e6594db1994e416e7a7353751e  gcc/testsuite/gcc.dg/torture/pr121370.c
  949a4a95ad545289488a204b883b05d6  gcc/testsuite/gcc.dg/torture/pr121844.c
+ 0cd9b5f403d655ca4804a15fc23543fd  gcc/testsuite/gcc.dg/torture/pr123416.c
  ea90221ab80b5c3561ffc7665d2a343a  gcc/testsuite/gcc.dg/torture/pr123645-1.c
  c6c07c813f67e0f94f1352f2810dfcff  gcc/testsuite/gcc.dg/torture/pr123645-2.c
  50838f4736657229a26dc1b011faf8d3  gcc/testsuite/gcc.dg/torture/pr123864.c
+ d4f9bc1a728b13f9940b71ab03cc40fd  gcc/testsuite/gcc.dg/torture/pr124132.c
+ 16b777622562135656ac0ab96375cfb5  gcc/testsuite/gcc.dg/torture/pr124868.c
+ fbe779467ae6f7cb7ee578922f1e8686  gcc/testsuite/gcc.dg/torture/pr125025.c
+ 34d76b7c3d511915334d6295155dc103  gcc/testsuite/gcc.dg/torture/pr125774-1.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** fc2eb8ac52faed5fba0a017b858d4ae4  gcc/te
*** 59821,59826 ****
--- 59828,59834 ----
  4036d83a59b4adcf9e8a4cf5a291d22e  gcc/testsuite/gcc.target/aarch64/torture/pr111677.c
  8ba6cf5317762b2b89350d4f652efa53  gcc/testsuite/gcc.target/aarch64/torture/pr116564.c
  d03b2f46140f14ae9b2101813aec3525  gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
+ a9e9dc89b86dea48cebffdbd8459e3a1  gcc/testsuite/gcc.target/aarch64/torture/pr125621.c
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
*************** d6f2200e900b3d85d0a491db3bfa13bc  gcc/te
*** 73434,73439 ****
--- 73442,73448 ----
  dfafc65f0a89ca5ee45ebec52ceac527  gcc/testsuite/gcc.target/loongarch/pr107713-2.c
  ee611d581d29c00b7178ec95c3dc6e82  gcc/testsuite/gcc.target/loongarch/pr107731.c
  9ad6397c4344b9805128cce24404b86a  gcc/testsuite/gcc.target/loongarch/pr115752.c
+ 8784ee3164375854ef7b1ffc0c536b5e  gcc/testsuite/gcc.target/loongarch/pr125049.c
  3adba2a8ae6f671eb22ec8228777c1ac  gcc/testsuite/gcc.target/loongarch/prolog-opt.c
  1075563283e6d2ab3492f10a46a844ad  gcc/testsuite/gcc.target/loongarch/relocs-symbol-noaddend.c
  1794666eb38b2c760f7e0797a8843251  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-1.c
*************** b6d15e3409e7288f1d2564e38ca6c727  gcc/tr
*** 100669,100678 ****
  370a3d6606f97b793ee8a94e17f8a1f5  gcc/tree-ssa-loop-ivopts.h
  aa498fcb0de83e00d2d79464ed4fa669  gcc/tree-ssa-loop-manip.cc
  c10dc1a11bed8461c36db2d370f534b6  gcc/tree-ssa-loop-manip.h
! c90a53a9053650864e74999a5ab82442  gcc/tree-ssa-loop-niter.cc
  63e23177ceb0e06f07092e962fb6ec1e  gcc/tree-ssa-loop-niter.h
  29515e41d02e46edeeede5dbddecc177  gcc/tree-ssa-loop-prefetch.cc
! 8d00446e723fdc157e179d58c825952a  gcc/tree-ssa-loop-split.cc
  d64db354e8b15e125e29a328c68f0612  gcc/tree-ssa-loop-unswitch.cc
  e2040b0e641b28b006e48fb2094500e2  gcc/tree-ssa-loop.cc
  943d41105325f8de1cdae2b4faf2dd0a  gcc/tree-ssa-loop.h
--- 100678,100687 ----
  370a3d6606f97b793ee8a94e17f8a1f5  gcc/tree-ssa-loop-ivopts.h
  aa498fcb0de83e00d2d79464ed4fa669  gcc/tree-ssa-loop-manip.cc
  c10dc1a11bed8461c36db2d370f534b6  gcc/tree-ssa-loop-manip.h
! 707b56ccbba46f1786c23392c1ca355a  gcc/tree-ssa-loop-niter.cc
  63e23177ceb0e06f07092e962fb6ec1e  gcc/tree-ssa-loop-niter.h
  29515e41d02e46edeeede5dbddecc177  gcc/tree-ssa-loop-prefetch.cc
! 2147068f6f7f5752d71fc7a68447adf4  gcc/tree-ssa-loop-split.cc
  d64db354e8b15e125e29a328c68f0612  gcc/tree-ssa-loop-unswitch.cc
  e2040b0e641b28b006e48fb2094500e2  gcc/tree-ssa-loop.cc
  943d41105325f8de1cdae2b4faf2dd0a  gcc/tree-ssa-loop.h
diff -Nrcpad gcc-13-20260610/gcc/ChangeLog gcc-13-20260617/gcc/ChangeLog
*** gcc-13-20260610/gcc/ChangeLog	Wed Jun 10 22:32:05 2026
--- gcc-13-20260617/gcc/ChangeLog	Wed Jun 17 22:32:05 2026
***************
*** 1,3 ****
--- 1,101 ----
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125025
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_ne): Avoid
+ 	negation of most negative signed integer.
+ 	(number_of_iterations_lt): Likewise.
+ 
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124868
+ 	* gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
+ 	Do not diagnose returns in blocks not dominated by the PHI.
+ 	(find_implicit_erroneous_behavior): Do two sweeps over PHIs,
+ 	first for NULL dereferences and then for local address returns.
+ 
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124132
+ 	* tree-ssa-loop-split.cc (compute_new_first_bound): Fix
+ 	bound difference computation.
+ 
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/123416
+ 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining):
+ 	Fix typo in condtion for load merging when no callee summary.
+ 
+ 2026-06-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-03-10  Jan Hubicka  <jh@suse.cz>
+ 		    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/120987
+ 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Mask
+ 	off non const/pure/novops related flags when combining of outer
+ 	functions.
+ 
+ 2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/125751
+ 	* config/avr/avr.cc (avr_out_fract): Fix too small sequence
+ 	lengths in avr_asm_len calls.
+ 
+ 2026-06-11  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/113233
+ 	* config/loongarch/loongarch.cc (TARGET_OPTION_SAVE): Undefine
+ 	before redefine.
+ 
+ 2026-06-11  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-05-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/125049
+ 	* config/loongarch/predicates.md (ssp_operand): New
+ 	define_predicate.
+ 	(ssp_normal_operand): New define_predicate.
+ 	* config/loongarch/constraints.md (ZE): New define_constraint.
+ 	(ZF): New define_constraint.
+ 	* config/loongarch/loongarch.md (UNSPEC_SSP): New unspec.
+ 	(cbranch4): Add "@" to create gen_cbranch4(machine_mode, ...).
+ 	(@stack_protect_combined_set_normal_<mode>): New define_insn.
+ 	(@stack_protect_combined_set_extreme_<mode>): New define_insn.
+ 	(@stack_protect_combined_test_internal_<mode>): New define_insn.
+ 	(stack_protect_combined_set): New define_expand.
+ 	(stack_protect_combined_test): New define_expand.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_symbol_extreme_p): Declare.
+ 	(loongarch_output_asm_load_canary): Declare.
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand): Allow
+ 	'v' to print d/w for DImode/SImode.
+ 	(loongarch_symbol_extreme_p): Remove static.
+ 	(loongarch_output_asm_load_canary): Implement.
+ 
+ 2026-06-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111387
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Check
+ 	EDGE_DFS_BACK when doing BB vectorization.
+ 	(vect_slp_function): Mark backedges.
+ 
  2026-06-02  John David Anglin  <danglin@gcc.gnu.org>
  
  	* config/pa/pa.cc (pa_trampoline_init): Rework to use
diff -Nrcpad gcc-13-20260610/gcc/DATESTAMP gcc-13-20260617/gcc/DATESTAMP
*** gcc-13-20260610/gcc/DATESTAMP	Wed Jun 10 22:32:06 2026
--- gcc-13-20260617/gcc/DATESTAMP	Wed Jun 17 22:32:05 2026
***************
*** 1 ****
! 20260610
--- 1 ----
! 20260617
diff -Nrcpad gcc-13-20260610/gcc/ada/ChangeLog gcc-13-20260617/gcc/ada/ChangeLog
*** gcc-13-20260610/gcc/ada/ChangeLog	Wed Jun 10 22:32:06 2026
--- gcc-13-20260617/gcc/ada/ChangeLog	Wed Jun 17 22:32:05 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/125695
+ 	* libgnat/s-genbig.adb ("**"): Do not drop the sign on the floor.
+ 	(Big_Exp): Take into account the parity of the exponent for -2.
+ 
  2026-04-12  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/124836
diff -Nrcpad gcc-13-20260610/gcc/config/avr/avr.cc gcc-13-20260617/gcc/config/avr/avr.cc
*** gcc-13-20260610/gcc/config/avr/avr.cc	Wed Jun 10 22:32:06 2026
--- gcc-13-20260617/gcc/config/avr/avr.cc	Wed Jun 17 22:32:06 2026
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9323,9329 ****
          {
            avr_asm_len ("clr __tmp_reg__" CR_TAB
                         "sbrc %1,0"       CR_TAB
!                        "dec __tmp_reg__", xop, plen, 1);
            sn = src.regno;
            if (sn < s0)
              {
--- 9323,9329 ----
          {
            avr_asm_len ("clr __tmp_reg__" CR_TAB
                         "sbrc %1,0"       CR_TAB
!                        "dec __tmp_reg__", xop, plen, 3);
            sn = src.regno;
            if (sn < s0)
              {
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9338,9344 ****
              avr_asm_len ("clt"                CR_TAB
                           "bld __tmp_reg__,7"  CR_TAB
                           "adc %0,__tmp_reg__",
!                          &all_regs_rtx[s0], plen, 1);
            else
              avr_asm_len ("lsr __tmp_reg" CR_TAB
                           "add %0,__tmp_reg__",
--- 9338,9344 ----
              avr_asm_len ("clt"                CR_TAB
                           "bld __tmp_reg__,7"  CR_TAB
                           "adc %0,__tmp_reg__",
!                          &all_regs_rtx[s0], plen, 3);
            else
              avr_asm_len ("lsr __tmp_reg" CR_TAB
                           "add %0,__tmp_reg__",
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9537,9544 ****
  	  xop[2] = all_regs_rtx[s0];
  	  if (!lsb_in_tmp_reg && !MAY_CLOBBER (s0))
  	    avr_asm_len ("mov __tmp_reg__,%2", xop, plen, 1);
! 	  avr_asm_len ("tst %0" CR_TAB "brpl 0f",
! 		       &all_regs_rtx[src.regno_msb], plen, 2);
  	  if (!lsb_in_tmp_reg)
  	    {
  	      unsigned sn = src.regno;
--- 9537,9544 ----
  	  xop[2] = all_regs_rtx[s0];
  	  if (!lsb_in_tmp_reg && !MAY_CLOBBER (s0))
  	    avr_asm_len ("mov __tmp_reg__,%2", xop, plen, 1);
! 	  avr_asm_len ("tst %0" CR_TAB
! 		       "brpl 0f", &all_regs_rtx[src.regno_msb], plen, 2);
  	  if (!lsb_in_tmp_reg)
  	    {
  	      unsigned sn = src.regno;
diff -Nrcpad gcc-13-20260610/gcc/config/loongarch/constraints.md gcc-13-20260617/gcc/config/loongarch/constraints.md
*** gcc-13-20260610/gcc/config/loongarch/constraints.md	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/config/loongarch/constraints.md	Wed Jun 17 22:32:06 2026
***************
*** 200,202 ****
--- 200,211 ----
     and offset that is suitable for use in instructions with the same
     addressing mode as @code{preld}."
     (match_test "loongarch_12bit_offset_address_p (op, mode)"))
+ 
+ (define_constraint "ZE"
+   "A symbolic suitable as stack canary in the normal/medium code model."
+   (match_operand 0 "ssp_normal_operand"))
+ 
+ (define_constraint "ZF"
+   "A symbolic suitable as stack canary, but in the extreme code model."
+   (and (match_operand 0 "ssp_operand")
+        (not (match_operand 0 "ssp_normal_operand"))))
diff -Nrcpad gcc-13-20260610/gcc/config/loongarch/loongarch-protos.h gcc-13-20260617/gcc/config/loongarch/loongarch-protos.h
*** gcc-13-20260610/gcc/config/loongarch/loongarch-protos.h	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/config/loongarch/loongarch-protos.h	Wed Jun 17 22:32:06 2026
*************** extern rtx loongarch_expand_builtin (tre
*** 180,183 ****
--- 180,185 ----
  				     machine_mode, int);
  extern tree loongarch_build_builtin_va_list (void);
  
+ extern bool loongarch_symbol_extreme_p (enum loongarch_symbol_type);
+ extern void loongarch_output_asm_load_canary (rtx reg, rtx canary, rtx tmp);
  #endif /* ! GCC_LOONGARCH_PROTOS_H */
diff -Nrcpad gcc-13-20260610/gcc/config/loongarch/loongarch.cc gcc-13-20260617/gcc/config/loongarch/loongarch.cc
*** gcc-13-20260610/gcc/config/loongarch/loongarch.cc	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/config/loongarch/loongarch.cc	Wed Jun 17 22:32:06 2026
*************** loongarch_force_address (rtx x, machine_
*** 2825,2831 ****
    return x;
  }
  
! static bool
  loongarch_symbol_extreme_p (enum loongarch_symbol_type type)
  {
    switch (type)
--- 2825,2831 ----
    return x;
  }
  
! bool
  loongarch_symbol_extreme_p (enum loongarch_symbol_type type)
  {
    switch (type)
*************** loongarch_print_operand (FILE *file, rtx
*** 5153,5158 ****
--- 5153,5172 ----
        fputc (',', file);
        break;
  
+     case 'v':
+       switch (GET_MODE (op))
+ 	{
+ 	case E_SImode:
+ 	  fprintf (file, "w");
+ 	  break;
+ 	case E_DImode:
+ 	  fprintf (file, "d");
+ 	  break;
+ 	default:
+ 	  output_operand_lossage ("invalid use of '%%%c'", letter);
+ 	}
+       break;
+ 
      default:
        switch (code)
  	{
*************** loongarch_asan_shadow_offset (void)
*** 6631,6636 ****
--- 6645,6692 ----
    return TARGET_64BIT ? (HOST_WIDE_INT_1 << 46) : 0;
  }
  
+ void
+ loongarch_output_asm_load_canary (rtx reg, rtx canary, rtx tmp)
+ {
+   gcc_checking_assert (ssp_operand (canary, VOIDmode));
+   gcc_checking_assert ((!tmp) == ssp_normal_operand (canary, VOIDmode));
+   gcc_checking_assert (register_operand (reg, Pmode));
+ 
+   rtx op[] = {reg, canary, tmp};
+   bool got = (loongarch_classify_symbol (canary) == SYMBOL_GOT_DISP);
+   bool need_ld = false;
+ 
+   if (!TARGET_EXPLICIT_RELOCS)
+     {
+       if (got)
+ 	output_asm_insn (tmp ? "la.global\t%0,%2,%1" : "la.global\t%0,%1",
+ 			 op);
+       else
+ 	output_asm_insn (tmp ? "la.local\t%0,%2,%1" : "la.local\t%0,%1",
+ 			 op);
+ 
+       need_ld = true;
+     }
+   else
+     {
+       output_asm_insn ("pcalau12i\t%0,%r1", op);
+       if (!tmp)
+ 	output_asm_insn ("ld.%v0\t%0,%0,%L1", op);
+       else
+ 	{
+ 	  output_asm_insn ("addi.d\t%2,$r0,%L1", op);
+ 	  output_asm_insn ("lu32i.d\t%2,%R1", op);
+ 	  output_asm_insn ("lu52i.d\t%2,%2,%H1", op);
+ 	  output_asm_insn ("ldx.d\t%0,%0,%2", op);
+ 	}
+ 
+       need_ld = got;
+     }
+ 
+   if (need_ld)
+     output_asm_insn ("ld.%v0\t%0,%0,0", op);
+ }
+ 
  /* Initialize the GCC target structure.  */
  #undef TARGET_ASM_ALIGNED_HI_OP
  #define TARGET_ASM_ALIGNED_HI_OP "\t.half\t"
*************** loongarch_asan_shadow_offset (void)
*** 6641,6646 ****
--- 6697,6703 ----
  
  #undef TARGET_OPTION_OVERRIDE
  #define TARGET_OPTION_OVERRIDE loongarch_option_override
+ #undef TARGET_OPTION_SAVE
  #define TARGET_OPTION_SAVE loongarch_option_save
  #undef TARGET_OPTION_RESTORE
  #define TARGET_OPTION_RESTORE loongarch_option_restore
diff -Nrcpad gcc-13-20260610/gcc/config/loongarch/loongarch.md gcc-13-20260617/gcc/config/loongarch/loongarch.md
*** gcc-13-20260610/gcc/config/loongarch/loongarch.md	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/config/loongarch/loongarch.md	Wed Jun 17 22:32:06 2026
***************
*** 74,79 ****
--- 74,81 ----
  
    UNSPEC_SIBCALL_VALUE_MULTIPLE_INTERNAL_1
    UNSPEC_CALL_VALUE_MULTIPLE_INTERNAL_1
+ 
+   UNSPEC_SSP
  ])
  
  (define_c_enum "unspecv" [
***************
*** 2698,2704 ****
    [(set_attr "type" "branch")])
  
  
! (define_expand "cbranch<mode>4"
    [(set (pc)
  	(if_then_else (match_operator 0 "comparison_operator"
  			[(match_operand:GPR 1 "register_operand")
--- 2700,2706 ----
    [(set_attr "type" "branch")])
  
  
! (define_expand "@cbranch<mode>4"
    [(set (pc)
  	(if_then_else (match_operator 0 "comparison_operator"
  			[(match_operand:GPR 1 "register_operand")
***************
*** 3584,3589 ****
--- 3586,3675 ----
    [(set_attr "type" "unknown")
     (set_attr "mode" "<MODE>")])
  
+ ;; Set and check against stack canary without leaving it in a register.
+ ;; DO NOT ATTEMPT TO SPLIT THESE INSNS!  It's important for security reason
+ ;; that the canary value does not live beyond the life of this sequence.
+ 
+ (define_insn "@stack_protect_combined_set_normal_<mode>"
+   [(set (match_operand:P 0 "memory_operand" "=m,ZC")
+         (unspec:P [(mem:P (match_operand:P 1 "ssp_normal_operand"))]
+ 		  UNSPEC_SSP))
+    (set (match_scratch:P 2 "=&r,&r") (const_int 0))]
+   ""
+ {
+   loongarch_output_asm_load_canary (operands[2], operands[1], NULL_RTX);
+   output_asm_insn (which_alternative ? "stptr.d\t%2,%0" : "st.d\t%2,%0",
+ 		   operands);
+   return "ori\t%2,$r0,0";
+ }
+   [(set_attr "type" "store")
+    (set_attr "length" "20")])
+ 
+ (define_insn "@stack_protect_combined_set_extreme_<mode>"
+   [(set (match_operand:P 0 "memory_operand" "=m,ZC")
+         (unspec:P [(mem:P (match_operand:P 1 "ssp_operand"))] UNSPEC_SSP))
+    (set (match_scratch:P 2 "=&r,&r") (const_int 0))
+    (set (match_scratch:P 3 "=&r,&r") (const_int 0))]
+   ""
+ {
+   loongarch_output_asm_load_canary (operands[2], operands[1], operands[3]);
+   output_asm_insn (which_alternative ? "stptr.d\t%2,%0" : "st.d\t%2,%0",
+ 		   operands);
+   return "ori\t%2,$r0,0\n\tori\t%3,$r0,0";
+ }
+   [(set_attr "type" "store")
+    (set_attr "length" "36")])
+ 
+ (define_insn "@stack_protect_combined_test_internal_<mode>"
+   [(set (match_operand:P 0 "register_operand" "=r,r,&r,&r")
+ 	(xor:P
+ 	  (match_operand:P 1 "memory_operand" "=m,ZC,m,ZC")
+ 	    (unspec:P
+ 	      [(mem:P (match_operand:P 2 "ssp_operand" "ZE,ZE,ZF,ZF"))]
+ 	      UNSPEC_SSP)))
+    (set (match_scratch:P 3 "=&r,&r,&r,&r") (const_int 0))]
+   ""
+ {
+   rtx t = (which_alternative >= 2 ? operands[0] : NULL_RTX);
+   loongarch_output_asm_load_canary (operands[3], operands[2], t);
+   output_asm_insn ((which_alternative & 1) ? "ldptr.d\t%0,%1"
+ 					   : "ld.d\t%0,%1",
+ 		   operands);
+   return "xor\t%0,%0,%3\n\tori\t%3,$r0,0";
+ }
+   [(set_attr "type" "load,load,load,load")
+    (set_attr "length" "24,24,36,36")])
+ 
+ (define_expand "stack_protect_combined_set"
+   [(match_operand 0 "memory_operand")
+    (match_operand 1 "memory_operand")]
+   ""
+ {
+   rtx canary = XEXP (operands[1], 0);
+   auto fn = (ssp_normal_operand (canary, VOIDmode)
+ 	     ? gen_stack_protect_combined_set_normal
+ 	     : gen_stack_protect_combined_set_extreme);
+ 
+   emit_insn (fn (Pmode, operands[0], canary));
+   DONE;
+ })
+ 
+ (define_expand "stack_protect_combined_test"
+   [(match_operand 0 "memory_operand")
+    (match_operand 1 "memory_operand")
+    (match_operand 2 "")]
+   ""
+ {
+   rtx t = gen_reg_rtx (Pmode);
+   rtx canary = XEXP (operands[1], 0);
+   emit_insn (gen_stack_protect_combined_test_internal (Pmode, t,
+ 						       operands[0],
+ 						       canary));
+   rtx cond = gen_rtx_EQ (VOIDmode, t, const0_rtx);
+   emit_jump_insn (gen_cbranch4 (Pmode, cond, t, const0_rtx, operands[2]));
+   DONE;
+ })
+ 
  ;; Synchronization instructions.
  
  (include "sync.md")
diff -Nrcpad gcc-13-20260610/gcc/config/loongarch/predicates.md gcc-13-20260617/gcc/config/loongarch/predicates.md
*** gcc-13-20260610/gcc/config/loongarch/predicates.md	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/config/loongarch/predicates.md	Wed Jun 17 22:32:06 2026
***************
*** 248,253 ****
--- 248,269 ----
    return loongarch_symbolic_constant_p (op, &type);
  })
  
+ (define_predicate "symbolic_off64_operand"
+  (match_code "const,symbol_ref,label_ref")
+ {
+   enum loongarch_symbol_type type;
+   return loongarch_symbolic_constant_p (op, &type)
+ 	 && loongarch_symbol_extreme_p (type);
+ })
+ 
+ ;; Currently stack canary must be the global symbol __stack_chk_guard.
+ (define_predicate "ssp_operand" (match_code "symbol_ref"))
+ 
+ ;; If the stack canary is within the normal/medium code model.
+ (define_predicate "ssp_normal_operand"
+   (and (match_operand 0 "ssp_operand")
+        (not (match_operand 0 "symbolic_off64_operand"))))
+ 
  (define_predicate "equality_operator"
    (match_code "eq,ne"))
  
diff -Nrcpad gcc-13-20260610/gcc/cp/parser.cc gcc-13-20260617/gcc/cp/parser.cc
*** gcc-13-20260610/gcc/cp/parser.cc	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/cp/parser.cc	Wed Jun 17 22:32:07 2026
*************** cp_parser_class_specifier (cp_parser* pa
*** 26231,26236 ****
--- 26231,26237 ----
        case CPP_SEMICOLON:
        case CPP_MULT:
        case CPP_AND:
+       case CPP_AND_AND:
        case CPP_OPEN_PAREN:
        case CPP_CLOSE_PAREN:
        case CPP_COMMA:
diff -Nrcpad gcc-13-20260610/gcc/expmed.cc gcc-13-20260617/gcc/expmed.cc
*** gcc-13-20260610/gcc/expmed.cc	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/expmed.cc	Wed Jun 17 22:32:07 2026
*************** make_tree (tree type, rtx x)
*** 5357,5362 ****
--- 5357,5365 ----
        t = wide_int_to_tree (type, rtx_mode_t (x, TYPE_MODE (type)));
        return t;
  
+     case CONST_POLY_INT:
+       return wide_int_to_tree (type, const_poly_int_value (x));
+ 
      case CONST_DOUBLE:
        STATIC_ASSERT (HOST_BITS_PER_WIDE_INT * 2 <= MAX_BITSIZE_MODE_ANY_INT);
        if (TARGET_SUPPORTS_WIDE_INT == 0 && GET_MODE (x) == VOIDmode)
*************** make_tree (tree type, rtx x)
*** 5448,5456 ****
        /* fall through.  */
  
      default:
-       if (CONST_POLY_INT_P (x))
- 	return wide_int_to_tree (t, const_poly_int_value (x));
- 
        t = build_decl (RTL_LOCATION (x), VAR_DECL, NULL_TREE, type);
  
        /* If TYPE is a POINTER_TYPE, we might need to convert X from
--- 5451,5456 ----
diff -Nrcpad gcc-13-20260610/gcc/gimple-range-fold.cc gcc-13-20260617/gcc/gimple-range-fold.cc
*** gcc-13-20260610/gcc/gimple-range-fold.cc	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/gimple-range-fold.cc	Wed Jun 17 22:32:07 2026
*************** fold_using_range::relation_fold_and_or (
*** 1064,1070 ****
      return;
  
    if (reverse_op2)
!     relation2 = relation_negate (relation2);
  
    // x && y is false if the relation intersection of the true cases is NULL.
    if (is_and && relation_intersect (relation1, relation2) == VREL_UNDEFINED)
--- 1064,1070 ----
      return;
  
    if (reverse_op2)
!     relation2 = relation_swap (relation2);
  
    // x && y is false if the relation intersection of the true cases is NULL.
    if (is_and && relation_intersect (relation1, relation2) == VREL_UNDEFINED)
diff -Nrcpad gcc-13-20260610/gcc/gimple-ssa-isolate-paths.cc gcc-13-20260617/gcc/gimple-ssa-isolate-paths.cc
*** gcc-13-20260610/gcc/gimple-ssa-isolate-paths.cc	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/gimple-ssa-isolate-paths.cc	Wed Jun 17 22:32:07 2026
*************** handle_return_addr_local_phi_arg (basic_
*** 641,647 ****
        if (!return_stmt)
  	continue;
  
!       if (gimple_return_retval (return_stmt) != lhs)
  	continue;
  
        /* Add an entry for the return statement and the locations
--- 641,648 ----
        if (!return_stmt)
  	continue;
  
!       if (gimple_return_retval (return_stmt) != lhs
! 	  || !dominated_by_p (CDI_DOMINATORS, gimple_bb (use_stmt), bb))
  	continue;
  
        /* Add an entry for the return statement and the locations
*************** find_implicit_erroneous_behavior (void)
*** 715,738 ****
   	 is then dereferenced within BB.  This is somewhat overly
  	 conservative, but probably catches most of the interesting
  	 cases.   */
        for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
  	{
  	  gphi *phi = si.phi ();
  	  tree lhs = gimple_phi_result (phi);
  
- 	  /* Initial number of PHI arguments.  The result may change
- 	     from one iteration of the loop below to the next in
- 	     response to changes to the CFG but only the initial
- 	     value is stored below for use by diagnostics.  */
- 	  unsigned nargs = gimple_phi_num_args (phi);
- 
  	  /* PHI produces a pointer result.  See if any of the PHI's
  	     arguments are NULL.
  
  	     When we remove an edge, we want to reprocess the current
  	     index since the argument at that index will have been
  	     removed, hence the ugly way we update I for each iteration.  */
- 	  basic_block duplicate = NULL;
  	  for (unsigned i = 0, next_i = 0;
  	       i < gimple_phi_num_args (phi); i = next_i)
  	    {
--- 716,733 ----
   	 is then dereferenced within BB.  This is somewhat overly
  	 conservative, but probably catches most of the interesting
  	 cases.   */
+       basic_block duplicate = NULL;
        for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
  	{
  	  gphi *phi = si.phi ();
  	  tree lhs = gimple_phi_result (phi);
  
  	  /* PHI produces a pointer result.  See if any of the PHI's
  	     arguments are NULL.
  
  	     When we remove an edge, we want to reprocess the current
  	     index since the argument at that index will have been
  	     removed, hence the ugly way we update I for each iteration.  */
  	  for (unsigned i = 0, next_i = 0;
  	       i < gimple_phi_num_args (phi); i = next_i)
  	    {
*************** find_implicit_erroneous_behavior (void)
*** 742,756 ****
  	      /* Advance the argument index unless a path involving
  		 the current argument has been isolated.  */
  	      next_i = i + 1;
- 	      bool isolated = false;
- 	      duplicate = handle_return_addr_local_phi_arg (bb, duplicate, lhs,
- 							    arg, e, locmap,
- 							    nargs, &isolated);
- 	      if (isolated)
- 		{
- 		  cfg_altered = true;
- 		  next_i = i;
- 		}
  
  	      if (!integer_zerop (arg))
  		continue;
--- 737,742 ----
*************** find_implicit_erroneous_behavior (void)
*** 788,793 ****
--- 774,821 ----
  		}
  	    }
  	}
+ 
+       /* Then look for a PHI which have addresses of locals that
+ 	 are then returned.  */
+       duplicate = NULL;
+       for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
+ 	{
+ 	  gphi *phi = si.phi ();
+ 	  tree lhs = gimple_phi_result (phi);
+ 
+ 	  /* Initial number of PHI arguments.  The result may change
+ 	     from one iteration of the loop below to the next in
+ 	     response to changes to the CFG but only the initial
+ 	     value is stored below for use by diagnostics.  */
+ 	  unsigned nargs = gimple_phi_num_args (phi);
+ 
+ 	  /* PHI produces a pointer result.  See if any of the PHI's
+ 	     arguments are NULL.
+ 
+ 	     When we remove an edge, we want to reprocess the current
+ 	     index since the argument at that index will have been
+ 	     removed, hence the ugly way we update I for each iteration.  */
+ 	  for (unsigned i = 0, next_i = 0;
+ 	       i < gimple_phi_num_args (phi); i = next_i)
+ 	    {
+ 	      tree arg = gimple_phi_arg_def (phi, i);
+ 	      edge e = gimple_phi_arg_edge (phi, i);
+ 
+ 	      /* Advance the argument index unless a path involving
+ 		 the current argument has been isolated.  */
+ 	      next_i = i + 1;
+ 	      bool isolated = false;
+ 	      duplicate = handle_return_addr_local_phi_arg (bb, duplicate, lhs,
+ 							    arg, e, locmap,
+ 							    nargs, &isolated);
+ 	      if (isolated)
+ 		{
+ 		  cfg_altered = true;
+ 		  next_i = i;
+ 		}
+ 	    }
+ 	}
+ 
      }
  
    diag_returned_locals (false, locmap);
diff -Nrcpad gcc-13-20260610/gcc/ipa-modref.cc gcc-13-20260617/gcc/ipa-modref.cc
*** gcc-13-20260610/gcc/ipa-modref.cc	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/ipa-modref.cc	Wed Jun 17 22:32:07 2026
*************** ipa_merge_modref_summary_after_inlining
*** 5272,5288 ****
  				      : NULL;
    class modref_summary_lto *callee_info_lto
  		 = summaries_lto ? summaries_lto->get (edge->callee) : NULL;
    int flags = flags_from_decl_or_type (edge->callee->decl);
!   /* Combine in outer flags.  */
!   cgraph_node *n;
!   for (n = edge->caller; n->inlined_to; n = n->callers->caller)
!     flags |= flags_from_decl_or_type (n->decl);
!   flags |= flags_from_decl_or_type (n->decl);
!   bool ignore_stores = ignore_stores_p (edge->caller->decl, flags);
  
    if (!callee_info && to_info)
      {
!       if (!(flags & (ECF_CONST | ECF_PURE | ECF_NOVOPS)))
  	to_info->loads->collapse ();
        if (!ignore_stores)
  	to_info->stores->collapse ();
--- 5272,5321 ----
  				      : NULL;
    class modref_summary_lto *callee_info_lto
  		 = summaries_lto ? summaries_lto->get (edge->callee) : NULL;
+ 
+   /* Compute effective ECF_CONST, ECF_PURE, ECF_NOVOPS,
+      ECF_LOOPING_CONST_OR_PURE and ignore_stores of the inlined function from
+      the point of view of caller of the function it is transitively inlined to.
+ 
+      Consider inline chain A->B->C, where (edge is the edge B->C).
+      ECF_CONST, ECF_PURE_ECF, ECF_NOVOPS and ignore_stores is the strongest
+      flag seen on the inline path.
+ 
+      ECF_LOOPING_CONST_OR_PURE is bit special since, for example if C
+      is ECF_CONST | ECF_LOOPING_CONST_OR_PURE and B is ECF_PURE, then outcome
+      is ECF_CONST and !ECF_LOOPING_CONST_OR_PURE.
+ 
+      Flags are later used to avoid merging info about side-effects of C which
+      are invisible to to the caller of A.  For example, it is possible for
+      const function to have local array and call non-const functions modifying
+      it.  */
+ 
    int flags = flags_from_decl_or_type (edge->callee->decl);
!   bool ignore_stores = ignore_stores_p (edge->callee->decl, flags);
! 
!   for (cgraph_node *n = edge->caller; n;
!        n = n->inlined_to ? n->callers->caller : NULL)
!     {
!       int f = flags_from_decl_or_type (n->decl);
! 
!       ignore_stores |= ignore_stores_p (n->decl, f);
!       /* If we see first CONST/PURE flag in the chain, take its
! 	 ECF_LOOPING_CONST_OR_PURE  */
!       if (!(flags & (ECF_CONST | ECF_PURE)) && (f & (ECF_CONST | ECF_PURE)))
! 	flags |= (f & ECF_LOOPING_CONST_OR_PURE);
!       /* If we already have ECF_CONST or ECF_PURE flag
! 	 just improve ECF_LOOPING_CONST_OR_PURE if possible.  */
!       else if ((flags & (ECF_CONST | ECF_PURE))
! 	       && (flags & ECF_LOOPING_CONST_OR_PURE)
! 	       && (f & (ECF_CONST | ECF_PURE))
! 	       && !(f & ECF_LOOPING_CONST_OR_PURE))
! 	flags &= ECF_LOOPING_CONST_OR_PURE;
!       flags |= f & (ECF_CONST | ECF_PURE | ECF_NOVOPS);
!     }
  
    if (!callee_info && to_info)
      {
!       if (!(flags & (ECF_CONST | ECF_NOVOPS)))
  	to_info->loads->collapse ();
        if (!ignore_stores)
  	to_info->stores->collapse ();
diff -Nrcpad gcc-13-20260610/gcc/ipa-param-manipulation.cc gcc-13-20260617/gcc/ipa-param-manipulation.cc
*** gcc-13-20260610/gcc/ipa-param-manipulation.cc	Wed Jun 10 22:32:07 2026
--- gcc-13-20260617/gcc/ipa-param-manipulation.cc	Wed Jun 17 22:32:07 2026
*************** ipa_param_body_adjustments::prepare_debu
*** 1307,1314 ****
  	}
  
        gcc_assert (TREE_CODE (value) == SSA_NAME);
!       tree *d = m_dead_ssa_debug_equiv.get (value);
!       m_dead_ssa_debug_equiv.put (dead_ssa, *d);
        return true;
      }
  
--- 1307,1314 ----
  	}
  
        gcc_assert (TREE_CODE (value) == SSA_NAME);
!       tree d = *m_dead_ssa_debug_equiv.get (value);
!       m_dead_ssa_debug_equiv.put (dead_ssa, d);
        return true;
      }
  
diff -Nrcpad gcc-13-20260610/gcc/testsuite/ChangeLog gcc-13-20260617/gcc/testsuite/ChangeLog
*** gcc-13-20260610/gcc/testsuite/ChangeLog	Wed Jun 10 22:32:08 2026
--- gcc-13-20260617/gcc/testsuite/ChangeLog	Wed Jun 17 22:32:08 2026
***************
*** 1,3 ****
--- 1,61 ----
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125025
+ 	* gcc.dg/torture/pr125025.c: New testcase.
+ 
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124868
+ 	* gcc.dg/torture/pr124868.c: New testcase.
+ 
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124132
+ 	* gcc.dg/torture/pr124132.c: New testcase.
+ 
+ 2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/123416
+ 	* gcc.dg/torture/pr123416.c: New testcase.
+ 
+ 2026-06-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-03-10  Jan Hubicka  <jh@suse.cz>
+ 		    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/120987
+ 	* g++.dg/torture/pr120987-1.C: New test.
+ 
+ 2026-06-11  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-05-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/125049
+ 	* gcc.target/loongarch/pr125049.c: New test.
+ 
+ 2026-06-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111387
+ 	* gcc.dg/torture/pr111387.c: New testcase.
+ 
+ 2026-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/bigint1.adb: New  test.
+ 
  2026-05-27  Martin Jambor  <mjambor@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260610/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C gcc-13-20260617/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C
*** gcc-13-20260610/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C	Wed Jun 17 22:32:08 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/65271
+ // { dg-do compile { target c++11 } }
+ 
+ struct {} && m0 = {};
+ union  {} && m1 = {};
+ class  {} && m2 = {};
+ enum   {} && m3 = {};
diff -Nrcpad gcc-13-20260610/gcc/testsuite/g++.dg/torture/pr120987-1.C gcc-13-20260617/gcc/testsuite/g++.dg/torture/pr120987-1.C
*** gcc-13-20260610/gcc/testsuite/g++.dg/torture/pr120987-1.C	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/g++.dg/torture/pr120987-1.C	Wed Jun 17 22:32:09 2026
***************
*** 0 ****
--- 1,56 ----
+ // { dg-do run { target c++11 } }
+ // PR tree-optimization/120987
+ 
+ #include <memory>
+ #include <string>
+ #include <cstdlib>
+ 
+ #define ERROR_STRING  "012345678901234567"
+ 
+ struct gdb_exception
+ {
+   gdb_exception (const char *s)
+     : message (std::make_shared<std::string> (s))
+   {}
+ 
+   explicit gdb_exception (gdb_exception &&other) noexcept
+     : message (std::move (other.message))
+   {
+     volatile int a = 1;
+     if (a != 1)
+       abort ();
+   }
+   
+ 
+   std::shared_ptr<std::string> message;
+ };
+ 
+ void __attribute__((noinline, noclone))
+ throw_exception (gdb_exception &&exception)
+ {
+   throw gdb_exception (std::move (exception));
+ }
+ 
+ static void __attribute__((noinline, noclone))
+ parse_linespec (void)
+ {
+   struct gdb_exception file_exception (ERROR_STRING);
+   throw_exception (std::move (file_exception));
+ }
+ 
+ int
+ main (void)
+ {
+   try
+     {
+       parse_linespec ();
+     }
+   catch (const gdb_exception &e)
+     {
+       if (*e.message != ERROR_STRING)
+         __builtin_abort();
+       return 0;
+     }
+ 
+   __builtin_abort();
+ }
diff -Nrcpad gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr123416.c gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr123416.c
*** gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr123416.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr123416.c	Wed Jun 17 22:32:10 2026
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fno-strict-aliasing" } */
+ 
+ struct a {
+   int b;
+ } c;
+ 
+ int d;
+ 
+ static struct a
+ g()
+ {
+   int a[2], b, f = 0;
+   for (; f < 2; f++)
+     a[f] = 1;
+   b = a[0];
+   if (b)
+     return c;
+ }
+ int main()
+ {
+   c.b = 1;
+   struct a e = g();
+   c = g();
+   if (!c.b || !e.b)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr124132.c gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr124132.c
*** gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr124132.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr124132.c	Wed Jun 17 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-w" } */
+ 
+ char slow_mul1_dst1, code_some_shards___gf_mulc__0, code_some_shards_lim;
+ long slow_mul1_dst_max;
+ long long code_some_shards_pos;
+ void code_some_shards()
+ {
+   char *dst = &slow_mul1_dst1;
+   for (; dst < &code_some_shards_lim; dst++)
+     {
+       if (code_some_shards_pos < slow_mul1_dst_max)
+         *dst = code_some_shards___gf_mulc__0;
+       code_some_shards_pos += 1;
+     }
+ }
diff -Nrcpad gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr124868.c gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr124868.c
*** gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr124868.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr124868.c	Wed Jun 17 22:32:10 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" } } */
+ /* { dg-additional-options "-fisolate-erroneous-paths-dereference" } */
+ 
+ int a;
+ static void __attribute__((noipa)) c(int b) {}
+ static int * __attribute__((noipa))
+ d()
+ {
+   int g = 0, *h = &g;
+   if (a)
+     {
+       int **i = &h;
+       *i = 0;
+     }
+   c(*h);
+   return h; /* { dg-warning "address of local variable" } */
+ }
+ int
+ main()
+ {
+   d();
+   return 0;
+ }
diff -Nrcpad gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr125025.c gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr125025.c
*** gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr125025.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr125025.c	Wed Jun 17 22:32:10 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fsanitize=undefined" } */
+ 
+ void f2(signed char a0)
+ {
+   signed char v4;
+   _Bool c7;
+   signed char v8 = 91;
+   v4 = v8 + v8;
+   v8 = 15 - 50;
+   a0 = v8 * v4;
+   v8 = v4 - a0;
+ lbl_br10:
+   c7 = a0 <= 0;
+   if (c7)
+     return;
+   v4 = v8 - 24;
+   a0 = a0 + v4;
+   goto lbl_br10;
+ }
diff -Nrcpad gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr125774-1.c gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr125774-1.c
*** gcc-13-20260610/gcc/testsuite/gcc.dg/torture/pr125774-1.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/gcc.dg/torture/pr125774-1.c	Wed Jun 17 22:32:10 2026
***************
*** 0 ****
--- 1,48 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fgimple -fdump-tree-optimized" } */
+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } */
+ /* PR tree-optimization/125774 */
+ 
+ __attribute__((noipa))
+ _Bool __GIMPLE (ssa,startwith("dom"))
+ f (int a, int b)
+ {
+   _Bool _3;
+   _Bool _4;
+   _Bool _5;
+ 
+   __BB(2):
+   _3 = a_1(D) > b_2(D);
+   _4 = b_2(D) > a_1(D);
+   _5 = _3 | _4;
+   return _5;
+ }
+ 
+ __attribute__((noipa))
+ _Bool __GIMPLE (ssa,startwith("dom"))
+ f1 (int a, int b)
+ {
+   _Bool _3;
+   _Bool _4;
+   _Bool _5;
+ 
+   __BB(2):
+   _3 = a_1(D) > b_2(D);
+   _4 = a_1(D) < b_2(D);
+   _5 = _3 | _4;
+   return _5;
+ }
+ 
+ int main()
+ {
+   int a = 10, b = 10;
+   if (f(a,b))
+     __builtin_abort();
+   if (f1(a,b))
+     __builtin_abort();
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "return 1" "optimized" } } */
+ /* Both functions should be optimized to `a_1 != b_2`. */
+ /* { dg-final { scan-tree-dump-times "a_1.D. != b_2.D." 2 "optimized" { target __OPTIMIZE__ } } } */
diff -Nrcpad gcc-13-20260610/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c gcc-13-20260617/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c
*** gcc-13-20260610/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c	Wed Jun 17 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv8.2-a+sve -fsanitize=undefined" } */
+ #include <arm_sve.h>
+ 
+ long foo(long x) {
+   return (long)svcntd() * x;
+ }
diff -Nrcpad gcc-13-20260610/gcc/testsuite/gcc.target/loongarch/pr125049.c gcc-13-20260617/gcc/testsuite/gcc.target/loongarch/pr125049.c
*** gcc-13-20260610/gcc/testsuite/gcc.target/loongarch/pr125049.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260617/gcc/testsuite/gcc.target/loongarch/pr125049.c	Wed Jun 17 22:32:11 2026
***************
*** 0 ****
--- 1,50 ----
+ /* PR 125049: ensure stack canary and its address are not leaked.  */
+ /* { dg-options "-O2 -fstack-protector-strong -ffixed-r30 -ffixed-r31" } */
+ /* { dg-do run } */
+ /* { dg-require-effective-target fstack_protector } */
+ 
+ extern long __stack_chk_guard;
+ register long s7 asm ("s7"), *s8 asm ("s8");
+ 
+ [[gnu::zero_call_used_regs ("all"), gnu::noipa]] void
+ init_test (void)
+ {
+   s7 = __stack_chk_guard;
+   s8 = &__stack_chk_guard;
+ }
+ 
+ [[gnu::always_inline]] static inline void
+ check_reg (void)
+ {
+ #pragma GCC unroll 30
+   for (int i = 4; i < 30; i++)
+     asm goto (
+       "beq $r%0,$s7,%l[error]\n\t"
+       "beq $r%0,$s8,%l[error]\n\t"
+       :
+       : "i" (i)
+       :
+       : error
+     );
+   return;
+ error:
+   __builtin_trap ();
+ }
+ 
+ [[gnu::noipa]] void
+ test (void)
+ {
+   char buf[256];
+   asm ("":"+m"(buf));
+ 
+   check_reg ();
+ }
+ 
+ int
+ main (void)
+ {
+   init_test ();
+   test ();
+ 
+   check_reg ();
+ }
diff -Nrcpad gcc-13-20260610/gcc/tree-ssa-loop-niter.cc gcc-13-20260617/gcc/tree-ssa-loop-niter.cc
*** gcc-13-20260610/gcc/tree-ssa-loop-niter.cc	Wed Jun 10 22:32:13 2026
--- gcc-13-20260617/gcc/tree-ssa-loop-niter.cc	Wed Jun 17 22:32:13 2026
*************** number_of_iterations_ne (class loop *loo
*** 996,1003 ****
       if BNDS->below in the result is nonnegative.  */
    if (tree_int_cst_sign_bit (iv->step))
      {
!       s = fold_convert (niter_type,
! 			fold_build1 (NEGATE_EXPR, type, iv->step));
        c = fold_build2 (MINUS_EXPR, niter_type,
  		       fold_convert (niter_type, iv->base),
  		       fold_convert (niter_type, final));
--- 996,1003 ----
       if BNDS->below in the result is nonnegative.  */
    if (tree_int_cst_sign_bit (iv->step))
      {
!       s = fold_build1 (NEGATE_EXPR, niter_type,
! 		       fold_convert (niter_type, iv->step));
        c = fold_build2 (MINUS_EXPR, niter_type,
  		       fold_convert (niter_type, iv->base),
  		       fold_convert (niter_type, final));
*************** number_of_iterations_lt (class loop *loo
*** 1646,1653 ****
    if (integer_nonzerop (iv0->step))
      step = fold_convert (niter_type, iv0->step);
    else
!     step = fold_convert (niter_type,
! 			 fold_build1 (NEGATE_EXPR, type, iv1->step));
  
    /* If we can determine the final value of the control iv exactly, we can
       transform the condition to != comparison.  In particular, this will be
--- 1646,1653 ----
    if (integer_nonzerop (iv0->step))
      step = fold_convert (niter_type, iv0->step);
    else
!     step = fold_build1 (NEGATE_EXPR, niter_type,
! 			fold_convert (niter_type, iv1->step));
  
    /* If we can determine the final value of the control iv exactly, we can
       transform the condition to != comparison.  In particular, this will be
diff -Nrcpad gcc-13-20260610/gcc/tree-ssa-loop-split.cc gcc-13-20260617/gcc/tree-ssa-loop-split.cc
*** gcc-13-20260610/gcc/tree-ssa-loop-split.cc	Wed Jun 10 22:32:13 2026
--- gcc-13-20260617/gcc/tree-ssa-loop-split.cc	Wed Jun 17 22:32:13 2026
*************** compute_new_first_bound (gimple_seq *stm
*** 419,439 ****
    tree end = force_gimple_operand (niter->bound, &stmts2,
  					true, NULL_TREE);
    gimple_seq_add_seq_without_update (stmts, stmts2);
!   if (POINTER_TYPE_P (TREE_TYPE (enddiff)))
!     {
!       tree tem = gimple_convert (stmts, sizetype, enddiff);
!       tem = gimple_build (stmts, NEGATE_EXPR, sizetype, tem);
!       enddiff = gimple_build (stmts, POINTER_PLUS_EXPR,
! 			      TREE_TYPE (enddiff),
! 			      end, tem);
!     }
    else
      enddiff = gimple_build (stmts, MINUS_EXPR, TREE_TYPE (enddiff),
  			    end, enddiff);
  
    /* Compute guard_init + (end-beg).  */
    tree newbound;
-   enddiff = gimple_convert (stmts, TREE_TYPE (guard_init), enddiff);
    if (POINTER_TYPE_P (TREE_TYPE (guard_init)))
      {
        enddiff = gimple_convert (stmts, sizetype, enddiff);
--- 419,433 ----
    tree end = force_gimple_operand (niter->bound, &stmts2,
  					true, NULL_TREE);
    gimple_seq_add_seq_without_update (stmts, stmts2);
!   if (POINTER_TYPE_P (TREE_TYPE (controlbase)))
!     enddiff = gimple_build (stmts, POINTER_DIFF_EXPR,
! 			    ssizetype, end, enddiff);
    else
      enddiff = gimple_build (stmts, MINUS_EXPR, TREE_TYPE (enddiff),
  			    end, enddiff);
  
    /* Compute guard_init + (end-beg).  */
    tree newbound;
    if (POINTER_TYPE_P (TREE_TYPE (guard_init)))
      {
        enddiff = gimple_convert (stmts, sizetype, enddiff);
*************** compute_new_first_bound (gimple_seq *stm
*** 442,449 ****
  			       guard_init, enddiff);
      }
    else
!     newbound = gimple_build (stmts, PLUS_EXPR, TREE_TYPE (guard_init),
! 			     guard_init, enddiff);
  
    /* Depending on the direction of the IVs the new bound for the first
       loop is the minimum or maximum of old bound and border.
--- 436,446 ----
  			       guard_init, enddiff);
      }
    else
!     {
!       enddiff = gimple_convert (stmts, TREE_TYPE (guard_init), enddiff);
!       newbound = gimple_build (stmts, PLUS_EXPR, TREE_TYPE (guard_init),
! 			       guard_init, enddiff);
!     }
  
    /* Depending on the direction of the IVs the new bound for the first
       loop is the minimum or maximum of old bound and border.
