[v2,5/7] sim/m68hc11: Add ATTRIBUTE_PRINTF

Message ID 9d993eb853ecc5911c85868931cec308925014d8.1665038133.git.research_trasio@irq.a4lg.com
State Committed
Headers
Series sim, sim/ARCH: Add ATTRIBUTE_PRINTF |

Commit Message

Tsukasa OI Oct. 6, 2022, 6:36 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/m68hc11/m68hc11_sim.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Andrew Burgess Oct. 11, 2022, 2:25 p.m. UTC | #1
Tsukasa OI <research_trasio@irq.a4lg.com> writes:

> 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/m68hc11/m68hc11_sim.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sim/m68hc11/m68hc11_sim.c b/sim/m68hc11/m68hc11_sim.c
> index 6ec45f78206..2770f17262a 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, ...)
>  {

I've pushed this patch, but moved the ATTRIBUTE_PRINTF to the function
declaration.

Thanks,
Andrew

---

commit 7f9495b21380c0184dde72920bcca37be9d76b9d
Author: Tsukasa OI <research_trasio@irq.a4lg.com>
Date:   Thu Oct 6 06:36:31 2022 +0000

    sim/m68hc11: Add ATTRIBUTE_PRINTF
    
    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.

diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h
index e667c33a705..78dbd672867 100644
--- a/sim/m68hc11/sim-main.h
+++ b/sim/m68hc11/sim-main.h
@@ -539,7 +539,8 @@ 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, ...);
+			      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);
  

Patch

diff --git a/sim/m68hc11/m68hc11_sim.c b/sim/m68hc11/m68hc11_sim.c
index 6ec45f78206..2770f17262a 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, ...)
 {