diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2021-10-21 17:57:55 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2021-10-21 17:59:04 +0200 |
commit | 9262ae450d6a57837c58645c2ee66365bbe08338 (patch) | |
tree | d63d6196234c88e777b0681bbc275da22a4e7209 /gcc/cfgexpand.c | |
parent | 48154969d4b2e530af68ae9cd4277facf9d3f1a2 (diff) | |
download | gcc-9262ae450d6a57837c58645c2ee66365bbe08338.zip gcc-9262ae450d6a57837c58645c2ee66365bbe08338.tar.gz gcc-9262ae450d6a57837c58645c2ee66365bbe08338.tar.bz2 |
Fix again PR middle-end/102764
gcc/
PR middle-end/102764
* cfgexpand.c (expand_gimple_basic_block): Robustify latest change.
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r-- | gcc/cfgexpand.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 8b067f9..01d0cdc 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -5756,6 +5756,7 @@ expand_gimple_basic_block (basic_block bb, bool disable_tail_calls) rtx_insn *last; edge e; edge_iterator ei; + bool nondebug_stmt_seen = false; if (dump_file) fprintf (dump_file, "\n;; Generating RTL for gimple basic block %d\n", @@ -5836,6 +5837,8 @@ expand_gimple_basic_block (basic_block bb, bool disable_tail_calls) basic_block new_bb; stmt = gsi_stmt (gsi); + if (!is_gimple_debug (stmt)) + nondebug_stmt_seen = true; /* If this statement is a non-debug one, and we generate debug insns, then this one might be the last real use of a TERed @@ -6090,7 +6093,7 @@ expand_gimple_basic_block (basic_block bb, bool disable_tail_calls) /* Expand implicit goto and convert goto_locus. */ FOR_EACH_EDGE (e, ei, bb->succs) { - if (e->goto_locus != UNKNOWN_LOCATION || !stmt || is_gimple_debug (stmt)) + if (e->goto_locus != UNKNOWN_LOCATION || !nondebug_stmt_seen) set_curr_insn_location (e->goto_locus); if ((e->flags & EDGE_FALLTHRU) && e->dest != bb->next_bb) { |