From d9b6874b0c8f24e6adb785121381c24f87c726c4 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Fri, 17 Aug 2001 01:27:49 +0000 Subject: final.c (shorten_branches): Clear the end of the label_align array only if we made it larger. * 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. From-SVN: r44948 --- gcc/final.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'gcc/final.c') diff --git a/gcc/final.c b/gcc/final.c index ad92291..821a814 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 -- cgit v1.1