[5/7] sim/m68hc11: Add ATTRIBUTE_PRINTF

Message ID d07f4a57b4261000c38894c16e43f7c40b6df107.1664095452.git.research_trasio@irq.a4lg.com
State Superseded
Headers
Series sim, sim/ARCH: Add ATTRIBUTE_PRINTF |

Commit Message

Tsukasa OI Sept. 25, 2022, 8:44 a.m. UTC
  Clang generates a warning if the format string of a printf-like function is
not a literal ("-Wformat-nonliteral").  On the default configuration, it
causes a build failure (unless "--disable-werror" is specified).

To avoid warnings on the printf-like wrapper, it requires proper
__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.

This commit adds ATTRIBUTE_PRINTF to a printf-like function.

sim/ChangeLog:

	* m68hc11/m68hc11_sim.c (sim_memory_error): Add ATTRIBUTE_PRINTF.
	* m68hc11/sim-main.h (sim_memory_error): Likewise.
---
 sim/m68hc11/m68hc11_sim.c | 2 +-
 sim/m68hc11/sim-main.h    | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)
  

Patch

diff --git a/sim/m68hc11/m68hc11_sim.c b/sim/m68hc11/m68hc11_sim.c
index 6ec45f78206..3f73215f2e2 100644
--- a/sim/m68hc11/m68hc11_sim.c
+++ b/sim/m68hc11/m68hc11_sim.c
@@ -1017,7 +1017,7 @@  cpu_single_step (sim_cpu *cpu)
 }
 
 /* VARARGS */
-void
+void ATTRIBUTE_PRINTF(4, 5)
 sim_memory_error (sim_cpu *cpu, SIM_SIGNAL excep,
 		  uint16_t addr, const char *message, ...)
 {
diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h
index e667c33a705..b8e485ebe97 100644
--- a/sim/m68hc11/sim-main.h
+++ b/sim/m68hc11/sim-main.h
@@ -538,8 +538,9 @@  extern void cpu_return (sim_cpu *cpu);
 extern void cpu_set_sp (sim_cpu *cpu, uint16_t val);
 extern int cpu_reset (sim_cpu *cpu);
 extern int cpu_restart (sim_cpu *cpu);
-extern void sim_memory_error (sim_cpu *cpu, SIM_SIGNAL excep,
-                              uint16_t addr, const char *message, ...);
+extern void sim_memory_error (sim_cpu *cpu, SIM_SIGNAL excep, uint16_t addr,
+			      const char *message, ...)
+    ATTRIBUTE_PRINTF (4, 5);
 extern void emul_os (int op, sim_cpu *cpu);
 extern void cpu_interp_m6811 (sim_cpu *cpu);
 extern void cpu_interp_m6812 (sim_cpu *cpu);