aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2021-07-24 23:05:33 -0300
committerAlexandre Oliva <oliva@gnu.org>2021-08-17 08:00:40 -0300
commit6bcbf80c6e2bd8a60d88bbcac3d70ffb67f4888f (patch)
tree1dc74919abb9a239ce1bddda67dd6a933e8efe88 /gcc
parent3ed8da759b52708f6874af2afc6ab56b1fb00cec (diff)
downloadgcc-6bcbf80c6e2bd8a60d88bbcac3d70ffb67f4888f.zip
gcc-6bcbf80c6e2bd8a60d88bbcac3d70ffb67f4888f.tar.gz
gcc-6bcbf80c6e2bd8a60d88bbcac3d70ffb67f4888f.tar.bz2
retain debug stmt order when moving to successors
We iterate over debug stmts from the last one in new_bb, and we insert them before the first post-label stmt in each dest block, without moving the insertion iterator, so they end up reversed. Moving the insertion iterator fixes this. for gcc/ChangeLog * tree-inline.c (maybe_move_debug_stmts_to_successors): Don't reverse debug stmts.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/tree-inline.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index c5d6b1e..5955ff1 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -2880,7 +2880,7 @@ maybe_move_debug_stmts_to_successors (copy_body_data *id, basic_block new_bb)
gimple_set_location (stmt, UNKNOWN_LOCATION);
}
gsi_remove (&si, false);
- gsi_insert_before (&dsi, stmt, GSI_SAME_STMT);
+ gsi_insert_before (&dsi, stmt, GSI_NEW_STMT);
continue;
}
@@ -2906,7 +2906,7 @@ maybe_move_debug_stmts_to_successors (copy_body_data *id, basic_block new_bb)
new_stmt = as_a <gdebug *> (gimple_copy (stmt));
else
gcc_unreachable ();
- gsi_insert_before (&dsi, new_stmt, GSI_SAME_STMT);
+ gsi_insert_before (&dsi, new_stmt, GSI_NEW_STMT);
id->debug_stmts.safe_push (new_stmt);
gsi_prev (&ssi);
}