[PATCH 0/7] sim, sim/ARCH: Add ATTRIBUTE_PRINTF

Tsukasa OI research_trasio@irq.a4lg.com
Sun Sep 25 08:44:10 GMT 2022


Hello,

[Background]

When we build Binutils and GDB with Clang, it causes a build failure due to
warnings generated by Clang and the default -Werror configuration.

I finally managed to make ALL ARCHITECTURE ENABLED Binutils and GDB
-Werror-free on Clang 15.0.0 (note that this does not necessarily mean
warning-free) and this patchset is a part of it
(the printf-like functions in the simulator).

Full Clang 15.0.0 -Werror-free branch is available at:
<https://github.com/a4lg/binutils-gdb/tree/clang-nowarn-dev>


[About this Patchset]

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 patchset adds ATTRIBUTE_PRINTF to all functions that require
ATTRIBUTE_PRINTF macro.

Note that most of the changes are made to architecture without any arch
maintainer so I feel sorry for Andrew and Mike.


Thanks,
Tsukasa




Tsukasa OI (7):
  sim: Add ATTRIBUTE_PRINTF
  sim/cris: Add ATTRIBUTE_PRINTF
  sim/erc32: Add ATTRIBUTE_PRINTF
  sim/m32c: Add ATTRIBUTE_PRINTF
  sim/m68hc11: Add ATTRIBUTE_PRINTF
  sim/ppc: Add ATTRIBUTE_PRINTF
  sim/rl78: Add ATTRIBUTE_PRINTF

 sim/common/sim-cpu.h      | 3 ++-
 sim/cris/traps.c          | 2 +-
 sim/erc32/interf.c        | 2 +-
 sim/erc32/sis.c           | 2 +-
 sim/m32c/trace.c          | 4 ++--
 sim/m68hc11/m68hc11_sim.c | 2 +-
 sim/m68hc11/sim-main.h    | 5 +++--
 sim/ppc/main.c            | 2 +-
 sim/ppc/misc.c            | 4 ++--
 sim/ppc/sim_calls.c       | 2 +-
 sim/rl78/trace.c          | 4 ++--
 11 files changed, 17 insertions(+), 15 deletions(-)


base-commit: 58d69206b8173b9d027a6c65f56cdaf045ae6e64
-- 
2.34.1



More information about the Gdb-patches mailing list