https://gcc.gnu.org/g:0595867e0c239d74dea52dbceaca9726b683713a
commit r16-8883-g0595867e0c239d74dea52dbceaca9726b683713a 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 e9019e2c7bd6..1af0d5254285 100644 --- a/gcc/gimple-fold.cc +++ b/gcc/gimple-fold.cc @@ -6850,14 +6850,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);
