https://gcc.gnu.org/g:5afe4cd7b855a0e36b5666a7851d6e9b9328d013
commit r15-11233-g5afe4cd7b855a0e36b5666a7851d6e9b9328d013 Author: Richard Biener <[email protected]> Date: Mon May 4 11:02:01 2026 +0200 middle-end/125146 - fold_stmt fails to release SSA names When match-and-simplify simplification fails we have to release eventually pushed stmts. PR middle-end/125146 * gimple-fold.cc (fold_stmt_1): Discard stmts in seq after failed gimple_simplify as well. (cherry picked from commit 71f161d8c5dc2cba7e6a74e87a1b7b86000036e0) Diff: --- gcc/gimple-fold.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc index a446a0f530a6..2c3284ee5717 100644 --- a/gcc/gimple-fold.cc +++ b/gcc/gimple-fold.cc @@ -6640,14 +6640,12 @@ fold_stmt_1 (gimple_stmt_iterator *gsi, bool inplace, tree (*valueize) (tree), gimple_seq seq = NULL; gimple_match_op res_op; if (gimple_simplify (stmt, &res_op, inplace ? NULL : &seq, - valueize, valueize)) - { - if (replace_stmt_with_simplification (gsi, &res_op, &seq, inplace, - dce_worklist)) - changed = true; - else - gimple_seq_discard (seq); - } + valueize, valueize) + && replace_stmt_with_simplification (gsi, &res_op, &seq, inplace, + dce_worklist)) + changed = true; + else + gimple_seq_discard (seq); } stmt = gsi_stmt (*gsi);
