summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-12-01 23:19:12 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-12-01 23:19:12 +0000
commit137c7d42ef172ccb1ced9a9bd212e207eb0bd037 (patch)
tree045df2848628b5e0a6675b645730aa13dbb9902e
parent75bd5adae1072ec96f2b05f35147891f977ab2b2 (diff)
downloadgcc-137c7d42ef172ccb1ced9a9bd212e207eb0bd037.tar.gz
* flow.c (delete_block): Call set_last_insn if we end up deleting the
last insn in the rtl chain. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24052 138bc75d-0d04-0410-961f-82ee72b054a4
-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;