diff --git a/ghc/runtime/storage/SMstats.lc b/ghc/runtime/storage/SMstats.lc index f67c4e7ae16ddb45b32b9c6af1e5d35166018ef8..90349dcc15e656d2f67cc8cfe1f179b9974ea4df 100644 --- a/ghc/runtime/storage/SMstats.lc +++ b/ghc/runtime/storage/SMstats.lc @@ -517,7 +517,12 @@ stat_exit(I_ alloc) fprintf(sf, " %%GC time %5.1f%% (%.1f%% elapsed)\n\n", GC_tot_time*100./time, GCe_tot_time*100./etime); - ullong_format_string((ullong)(GC_tot_alloc*sizeof(W_)/(time - GC_tot_time)), temp, rtsTrue/*commas*/); + if (time - GC_tot_time == 0.0) + ullong_format_string((ullong)0, temp, rtsTrue/*commas*/); + else + ullong_format_string((ullong) + (time - GC_tot_time)), temp, rtsTrue/*commas*/); + fprintf(sf, " Alloc rate %s bytes per MUT second\n\n", temp); fprintf(sf, " Productivity %5.1f%% of total user, %.1f%% of total elapsed\n\n",