diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-17 01:27:49 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-17 01:27:49 +0000 |
commit | 8ebf91ffefc10880feb8c8e5cddeef7a870696f5 (patch) | |
tree | d06379f9caf82cb62fa1d7889ebb1309f38e52b8 /gcc/final.c | |
parent | 37d9d338b607e66ee1f8b8da8157fc37abbaf55a (diff) | |
download | gcc-8ebf91ffefc10880feb8c8e5cddeef7a870696f5.tar.gz |
* final.c (shorten_branches): Clear the end of the label_align
array only if we made it larger. Break up messy expressions
for clarity.
* diagnostic.c (internal_error): Check for error recursion
before doing ICE suppression.
* timevar.c: Timing variables now count in milliseconds.
(init_timevar): Set up ticks_to_msec and clocks_to_msec here.
(get_time): Not here.
(timevar_print): Don't print any timer whose user, cpu, and
wall times are all zero as displayed.
* timevar.h: Update comment aboout units. Make timevar
counters unsigned.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44948 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/final.c b/gcc/final.c index ad922915c85..821a814fa45 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1062,12 +1062,20 @@ shorten_branches (first) if (max_labelno != max_label_num ()) { int old = max_labelno; + int n_labels; + int n_old_labels; + max_labelno = max_label_num (); + + n_labels = max_labelno - min_labelno + 1; + n_old_labels = old - min_labelno + 1; + label_align = (struct label_alignment *) xrealloc - (label_align, - (max_labelno - min_labelno + 1) * sizeof (struct label_alignment)); - memset (label_align + old + 1 - min_labelno, 0, - sizeof (struct label_alignment) * (max_labelno - old)); + (label_align, n_labels * sizeof (struct label_alignment)); + + if (n_old_labels < n_labels) + memset (label_align + n_old_labels, 0, + (n_labels - n_old_labels) * sizeof (struct label_alignment)); } /* Initialize label_align and set up uid_shuid to be strictly |