summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/flow.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f571a34ff1..9b51c349562 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -59,6 +59,9 @@ Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com)
+ * flow.c (delete_block): Call set_last_insn if we end up deleting the
+ last insn in the rtl chain.
+
* reload1.c (reload): Do not set reload_completed or split insns
here. Instead...
* toplev.c (rest_of_compilation): Set reload_completed after
diff --git a/gcc/flow.c b/gcc/flow.c
index 510c011677f..825bf22294b 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1018,12 +1018,16 @@ delete_block (i)
NEXT_INSN (PREV_INSN (basic_block_head[i])) = insn;
if (insn != 0)
PREV_INSN (insn) = PREV_INSN (basic_block_head[i]);
+ else
+ set_last_insn (PREV_INSN (basic_block_head[i]));
}
else
{
NEXT_INSN (PREV_INSN (basic_block_head[i])) = kept_head;
if (insn != 0)
PREV_INSN (insn) = kept_tail;
+ else
+ set_last_insn (kept_tail);
PREV_INSN (kept_head) = PREV_INSN (basic_block_head[i]);
NEXT_INSN (kept_tail) = insn;