[v2,3/5] sim: Suppress non-literal printf warning

Message ID 01dad5247fe31088813a45d200500a3ed2cdbce9.1664095312.git.research_trasio@irq.a4lg.com
State Superseded
Headers
Series sim: Suppress warnings if built with Clang |

Commit Message

Tsukasa OI Sept. 25, 2022, 8:42 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).

However, non-literal format string is completely safe here.

We have "include/diagnostics.h" to suppress certain warnings only when
necessary.  Because DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL can suppress
warnings when the format string of a printf-like function is not a literal,
this commit adds this macro (only where necessary) to suppress this warning.

sim/ChangeLog:

	* common/sim-hw.c (hw_vabort): Suppress non-literal printf warning
	by using DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL.
---
 sim/common/sim-hw.c | 3 +++
 1 file changed, 3 insertions(+)
  

Patch

diff --git a/sim/common/sim-hw.c b/sim/common/sim-hw.c
index cece5638bc9..36f355d2262 100644
--- a/sim/common/sim-hw.c
+++ b/sim/common/sim-hw.c
@@ -425,10 +425,13 @@  hw_vabort (struct hw *me,
   strcat (msg, ": ");
   strcat (msg, fmt);
   /* report the problem */
+  DIAGNOSTIC_PUSH
+  DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
   sim_engine_vabort (hw_system (me),
 		     STATE_HW (hw_system (me))->cpu,
 		     STATE_HW (hw_system (me))->cia,
 		     msg, ap);
+  DIAGNOSTIC_POP
 }
 
 void