sim: m68hc11: fix up cycle buffer printing
authorMike Frysinger <vapier@gentoo.org>
Sat, 8 May 2021 01:53:25 +0000 (21:53 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 8 May 2021 01:55:27 +0000 (21:55 -0400)
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.

sim/m68hc11/ChangeLog
sim/m68hc11/dv-m68hc11tim.c

index 1aaa51b29bb7878897e4df14fc231f1acce545e1..e88f12e444d4e14d4d031bc89860dc0e36f706d3 100644 (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.
index cd8274ffc34f8993d14c44a97e29599a3706afa3..d7bcac3fecadeaabdf2804ae1b0e617bb3af42f2 100644 (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;
 }