diff options
author | Alexandre Oliva <oliva@adacore.com> | 2021-07-24 23:05:33 -0300 |
---|---|---|
committer | Alexandre Oliva <oliva@gnu.org> | 2021-08-17 08:00:40 -0300 |
commit | 6bcbf80c6e2bd8a60d88bbcac3d70ffb67f4888f (patch) | |
tree | 1dc74919abb9a239ce1bddda67dd6a933e8efe88 /gcc | |
parent | 3ed8da759b52708f6874af2afc6ab56b1fb00cec (diff) | |
download | gcc-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.c | 4 |
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); } |