https://gcc.gnu.org/g:d807d9350e85515ee17aff620680bf280d9522dd
commit r14-12665-gd807d9350e85515ee17aff620680bf280d9522dd 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 | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc index cc84d392a83c..ae7f09c151a7 100644 --- a/gcc/gimple-fold.cc +++ b/gcc/gimple-fold.cc @@ -6406,13 +6406,11 @@ 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)) - changed = true; - else - gimple_seq_discard (seq); - } + valueize, valueize) + && replace_stmt_with_simplification (gsi, &res_op, &seq, inplace)) + changed = true; + else + gimple_seq_discard (seq); } stmt = gsi_stmt (*gsi);
