diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/final.c | 3 |
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); |