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);

Reply via email to