From 58bcfb006ecbca3ccd54e582b316d71937d73ce5 Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Thu, 10 Sep 2020 15:35:43 +0300 Subject: [PATCH] mdbx: add mdbx_printf_args() macro. Change-Id: I7fca72f8cc912d8644ecf149b755c78fb3cc7e23 --- mdbx.h | 9 +++++++++ src/core.c | 2 +- src/defs.h | 9 --------- src/internals.h | 4 ++-- src/mdbx_chk.c | 6 +++--- src/osal.h | 2 +- test/log.h | 22 +++++++++++----------- 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/mdbx.h b/mdbx.h index c8b857b1..3a041818 100644 --- a/mdbx.h +++ b/mdbx.h @@ -432,6 +432,15 @@ typedef mode_t mdbx_mode_t; #endif #endif /* __noreturn */ +#ifndef mdbx_printf_args +#if defined(__GNUC__) || __has_attribute(__format__) +#define mdbx_printf_args(format_index, first_arg) \ + __attribute__((__format__(__printf__, format_index, first_arg))) +#else +#define mdbx_printf_args(format_index, first_arg) +#endif +#endif /* mdbx_printf_args */ + #ifndef DEFINE_ENUM_FLAG_OPERATORS #if defined(__cplusplus) /// Define operator overloads to enable bit operations on enum values that are diff --git a/src/core.c b/src/core.c index 8881eb4a..f91d2911 100644 --- a/src/core.c +++ b/src/core.c @@ -581,7 +581,7 @@ number_of_ovpages(const MDBX_env *env, size_t bytes) { return bytes2pgno(env, PAGEHDRSZ - 1 + bytes) + 1; } -__cold static int __printf_args(2, 3) +__cold static int mdbx_printf_args(2, 3) bad_page(const MDBX_page *mp, const char *fmt, ...) { if (mdbx_log_enabled(MDBX_LOG_ERROR)) { static const MDBX_page *prev; diff --git a/src/defs.h b/src/defs.h index 21b69ead..18038339 100644 --- a/src/defs.h +++ b/src/defs.h @@ -259,15 +259,6 @@ # endif #endif /* unlikely */ -#ifndef __printf_args -# if defined(__GNUC__) || __has_attribute(__format__) -# define __printf_args(format_index, first_arg) \ - __attribute__((__format__(__printf__, format_index, first_arg))) -# else -# define __printf_args(format_index, first_arg) -# endif -#endif /* __printf_args */ - #ifndef __anonymous_struct_extension__ # if defined(__GNUC__) # define __anonymous_struct_extension__ __extension__ diff --git a/src/internals.h b/src/internals.h index 17e565bf..a1d37cd0 100644 --- a/src/internals.h +++ b/src/internals.h @@ -1037,9 +1037,9 @@ extern uint8_t mdbx_runtime_flags; extern uint8_t mdbx_loglevel; extern MDBX_debug_func *mdbx_debug_logger; -MDBX_INTERNAL_FUNC void __printf_args(4, 5) +MDBX_INTERNAL_FUNC void mdbx_printf_args(4, 5) mdbx_debug_log(int level, const char *function, int line, const char *fmt, - ...) __printf_args(4, 5); + ...) mdbx_printf_args(4, 5); MDBX_INTERNAL_FUNC void mdbx_debug_log_va(int level, const char *function, int line, const char *fmt, va_list args); diff --git a/src/mdbx_chk.c b/src/mdbx_chk.c index 50bb829d..67863307 100644 --- a/src/mdbx_chk.c +++ b/src/mdbx_chk.c @@ -106,7 +106,7 @@ struct problem { struct problem *problems_list; uint64_t total_problems; -static void __printf_args(1, 2) print(const char *msg, ...) { +static void mdbx_printf_args(1, 2) print(const char *msg, ...) { if (!quiet) { va_list args; @@ -145,7 +145,7 @@ static void va_log(MDBX_log_level_t level, const char *msg, va_list args) { } } -static void __printf_args(1, 2) error(const char *msg, ...) { +static void mdbx_printf_args(1, 2) error(const char *msg, ...) { va_list args; va_start(args, msg); va_log(MDBX_LOG_ERROR, msg, args); @@ -216,7 +216,7 @@ static walk_dbi_t *pagemap_lookup_dbi(const char *dbi_name, bool silent) { return last = dbi; } -static void __printf_args(4, 5) +static void mdbx_printf_args(4, 5) problem_add(const char *object, uint64_t entry_number, const char *msg, const char *extra, ...) { diff --git a/src/osal.h b/src/osal.h index 8b63b968..cdfe8965 100644 --- a/src/osal.h +++ b/src/osal.h @@ -487,7 +487,7 @@ static __maybe_unused __inline void mdbx_memory_barrier(void) { #define mdbx_asprintf asprintf #define mdbx_vasprintf vasprintf #else -MDBX_INTERNAL_FUNC __printf_args(2, 3) int __maybe_unused +MDBX_INTERNAL_FUNC mdbx_printf_args(2, 3) int __maybe_unused mdbx_asprintf(char **strp, const char *fmt, ...); MDBX_INTERNAL_FUNC int mdbx_vasprintf(char **strp, const char *fmt, va_list ap); #endif diff --git a/test/log.h b/test/log.h index 9da5a305..9fe174fa 100644 --- a/test/log.h +++ b/test/log.h @@ -18,7 +18,7 @@ #include "chrono.h" __noreturn void usage(void); -__noreturn void __printf_args(1, 2) failure(const char *fmt, ...); +__noreturn void mdbx_printf_args(1, 2) failure(const char *fmt, ...); __noreturn void failure_perror(const char *what, int errnum); const char *test_strerror(int errnum); @@ -51,12 +51,12 @@ void setlevel(loglevel priority); void output_nocheckloglevel_ap(const loglevel priority, const char *format, va_list ap); -bool __printf_args(2, 3) +bool mdbx_printf_args(2, 3) output(const loglevel priority, const char *format, ...); bool feed_ap(const char *format, va_list ap); -bool __printf_args(1, 2) feed(const char *format, ...); +bool mdbx_printf_args(1, 2) feed(const char *format, ...); -void inline __printf_args(2, 3) +void inline mdbx_printf_args(2, 3) output_nocheckloglevel(const loglevel priority, const char *format, ...) { va_list ap; va_start(ap, format); @@ -85,13 +85,13 @@ public: } // namespace logging -void __printf_args(1, 2) log_extra(const char *msg, ...); -void __printf_args(1, 2) log_trace(const char *msg, ...); -void __printf_args(1, 2) log_debug(const char *msg, ...); -void __printf_args(1, 2) log_verbose(const char *msg, ...); -void __printf_args(1, 2) log_notice(const char *msg, ...); -void __printf_args(1, 2) log_warning(const char *msg, ...); -void __printf_args(1, 2) log_error(const char *msg, ...); +void mdbx_printf_args(1, 2) log_extra(const char *msg, ...); +void mdbx_printf_args(1, 2) log_trace(const char *msg, ...); +void mdbx_printf_args(1, 2) log_debug(const char *msg, ...); +void mdbx_printf_args(1, 2) log_verbose(const char *msg, ...); +void mdbx_printf_args(1, 2) log_notice(const char *msg, ...); +void mdbx_printf_args(1, 2) log_warning(const char *msg, ...); +void mdbx_printf_args(1, 2) log_error(const char *msg, ...); void log_trouble(const char *where, const char *what, int errnum); void log_flush(void);