aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-iterator.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gimple-iterator.c')
-rw-r--r--gcc/gimple-iterator.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/gimple-iterator.c b/gcc/gimple-iterator.c
index 0ccca23..d401c69 100644
--- a/gcc/gimple-iterator.c
+++ b/gcc/gimple-iterator.c
@@ -558,16 +558,18 @@ gsi_remove (gimple_stmt_iterator *i, bool remove_permanently)
gimple *stmt = gsi_stmt (*i);
bool require_eh_edge_purge = false;
+ /* ??? Do we want to do this for non-permanent operation? */
if (gimple_code (stmt) != GIMPLE_PHI)
insert_debug_temps_for_defs (i);
- /* Free all the data flow information for STMT. */
gimple_set_bb (stmt, NULL);
- delink_stmt_imm_use (stmt);
- gimple_set_modified (stmt, true);
if (remove_permanently)
{
+ /* Free all the data flow information for STMT. */
+ delink_stmt_imm_use (stmt);
+ gimple_set_modified (stmt, true);
+
if (gimple_debug_nonbind_marker_p (stmt))
/* We don't need this to be exact, but try to keep it at least
close. */