aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2021-10-21 17:57:55 +0200
committerEric Botcazou <ebotcazou@adacore.com>2021-10-21 17:59:04 +0200
commit9262ae450d6a57837c58645c2ee66365bbe08338 (patch)
treed63d6196234c88e777b0681bbc275da22a4e7209 /gcc/cfgexpand.c
parent48154969d4b2e530af68ae9cd4277facf9d3f1a2 (diff)
downloadgcc-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.c5
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)
{