From: Alexandre Oliva Date: Sun, 25 Jul 2021 02:05:33 +0000 (-0300) Subject: retain debug stmt order when moving to successors X-Git-Tag: basepoints/gcc-13~5360 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6bcbf80c6e2bd8a60d88bbcac3d70ffb67f4888f;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index c5d6b1e6489f..5955ff18fdbc 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 (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); }