aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/final.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2092ff1..406cd47 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Mon Mar 9 19:57:56 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * final.c (shorten_branches): Initialize insn_addresses.
+
Mon Mar 9 14:10:23 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.h (MUST_PASS_IN_STACK): Define.
diff --git a/gcc/final.c b/gcc/final.c
index d00a05e..89054a8 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1067,6 +1067,9 @@ shorten_branches (first)
if (insn_addresses)
free (insn_addresses);
insn_addresses = (int *) xmalloc (max_uid * sizeof (int));
+ /* Syntax errors can lead to labels being outside of the main insn stream.
+ Initialize insn_addresses, so that we get reproducible results. */
+ bzero ((char *)insn_addresses, max_uid * sizeof *insn_addresses);
if (uid_align)
free (uid_align);
uid_align = (rtx *) xmalloc (max_uid * sizeof *uid_align);