From 3efe5b4d9e431f58a17e38d17419d6bcc3a4dd11 Mon Sep 17 00:00:00 2001 From: Tsukasa OI Date: Thu, 6 Oct 2022 06:36:32 +0000 Subject: [PATCH] sim/ppc: 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 the printf-like functions. For the error function defined in sim_calls.c, the ATTRIBUTE_NORETURN has been moved to the function declaration. --- sim/ppc/misc.h | 8 ++++---- sim/ppc/sim_callbacks.h | 5 ++--- sim/ppc/sim_calls.c | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/sim/ppc/misc.h b/sim/ppc/misc.h index 784ccfdd37b..08309134337 100644 --- a/sim/ppc/misc.h +++ b/sim/ppc/misc.h @@ -30,8 +30,8 @@ #include "ansidecl.h" #include "filter_filename.h" -extern void error -(const char *msg, ...); +extern void error (const char *msg, ...) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); #define ASSERT(EXPRESSION) \ do { \ @@ -47,8 +47,8 @@ do { \ extern void *zalloc (long size); -extern void dumpf -(int indent, const char *msg, ...); +extern void dumpf (int indent, const char *msg, ...) + ATTRIBUTE_PRINTF (2, 3); extern unsigned target_a2i (int ms_bit_nr, diff --git a/sim/ppc/sim_callbacks.h b/sim/ppc/sim_callbacks.h index 08ccd258569..c5f23bf8d64 100644 --- a/sim/ppc/sim_callbacks.h +++ b/sim/ppc/sim_callbacks.h @@ -31,9 +31,8 @@ void sim_io_printf_filtered (const char *msg, ...) ATTRIBUTE_PRINTF_1; -void ATTRIBUTE_NORETURN error -(const char *msg, ...); - +extern void error (const char *msg, ...) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); /* External environment: diff --git a/sim/ppc/sim_calls.c b/sim/ppc/sim_calls.c index fbc327c94e0..729f6dcb6f3 100644 --- a/sim/ppc/sim_calls.c +++ b/sim/ppc/sim_calls.c @@ -388,7 +388,7 @@ sim_io_error (SIM_DESC sd, const char *fmt, ...) /****/ -void ATTRIBUTE_NORETURN +void error (const char *msg, ...) { va_list ap; -- 2.30.2