diff --git a/scp.c b/scp.c index f798f795..f8695563 100644 --- a/scp.c +++ b/scp.c @@ -5971,10 +5971,11 @@ if (sim_clock_queue == QUEUE_LIST_END) fprintf (st, "%s event queue empty, time = %.0f, executing %s instructios/sec\n", sim_name, sim_time, sim_fmt_numeric (sim_timer_inst_per_sec ())); else { - const char *tim; + const char *tim = ""; + double inst_per_sec = sim_timer_inst_per_sec (); fprintf (st, "%s event queue status, time = %.0f, executing %s instructions/sec\n", - sim_name, sim_time, sim_fmt_numeric (sim_timer_inst_per_sec ())); + sim_name, sim_time, sim_fmt_numeric (inst_per_sec)); accum = 0; for (uptr = sim_clock_queue; uptr != QUEUE_LIST_END; uptr = uptr->next) { if (uptr == &sim_step_unit) @@ -5990,7 +5991,8 @@ else { } else fprintf (st, " Unknown"); - tim = sim_fmt_secs(((accum + uptr->time) / sim_timer_inst_per_sec ()) + (uptr->usecs_remaining / 1000000.0)); + if (inst_per_sec != 0.0) + tim = sim_fmt_secs(((accum + uptr->time) / sim_timer_inst_per_sec ()) + (uptr->usecs_remaining / 1000000.0)); if (uptr->usecs_remaining) fprintf (st, " at %d plus %.0f usecs%s%s%s%s\n", accum + uptr->time, uptr->usecs_remaining, (*tim) ? " (" : "", tim, (*tim) ? " total)" : "",