sim: m68hc11: fix up cycle buffer printing

Make sure the local static buffer is large enough, and simplify the
sprintf for merging the fields all into one.  This fixes compiler
warnings from buf possibly being overflowed.
This commit is contained in:
Mike Frysinger
2021-05-07 21:53:25 -04:00
parent f6593c3d4b
commit 8a16cc4b93
2 changed files with 8 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2021-05-07 Mike Frysinger <vapier@gentoo.org>
* dv-m68hc11tim.c (cycle_to_string): Increase buf to 128 bytes.
Merge two sprintf buf calls.
2021-05-06 Mike Frysinger <vapier@gentoo.org>
* interp.c (sim_hw_configure): Change %lx to %x in format strings.

View File

@ -479,7 +479,8 @@ cycle_to_string (sim_cpu *cpu, signed64 t, int flags)
{
char time_buf[32];
char cycle_buf[32];
static char buf[64];
/* Big enough to handle 64-bit t, time_buf, and cycle_buf. */
static char buf[128];
time_buf[0] = 0;
cycle_buf[0] = 0;
@ -500,10 +501,7 @@ cycle_to_string (sim_cpu *cpu, signed64 t, int flags)
sprintf (cycle_buf, " cycle%s",
(t > 1 ? "s" : ""));
if (t < LONG_MAX)
sprintf (buf, "%9lu%s%s", (unsigned long) t, cycle_buf, time_buf);
else
sprintf (buf, "%" PRIi64 "%s%s", t, cycle_buf, time_buf);
sprintf (buf, "%9" PRIi64 "%s%s", t, cycle_buf, time_buf);
return buf;
}