From 74756182d2da0f8889b3a0a1fded274a2baa14f5 Mon Sep 17 00:00:00 2001 From: Matthew Macy Date: Thu, 12 Sep 2019 13:28:26 -0700 Subject: Enable compiler to typecheck logging Annotate spa logging declarations with printflike Workaround gcc bug (non disable-able warning) by replacing "" with " " Reviewed-by: Matt Ahrens Reviewed-by: Brian Behlendorf Signed-off-by: Matt Macy Closes #9316 --- include/os/linux/spl/sys/debug.h | 2 ++ include/sys/spa.h | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/os/linux/spl/sys/debug.h b/include/os/linux/spl/sys/debug.h index ecda6bcb8..8fad3bef6 100644 --- a/include/os/linux/spl/sys/debug.h +++ b/include/os/linux/spl/sys/debug.h @@ -50,6 +50,8 @@ /* * Common DEBUG functionality. */ +#define __printflike(a, b) __printf(a, b) + int spl_panic(const char *file, const char *func, int line, const char *fmt, ...); void spl_dumpstack(void); diff --git a/include/sys/spa.h b/include/sys/spa.h index 8323662f6..51e4c0f77 100644 --- a/include/sys/spa.h +++ b/include/sys/spa.h @@ -1153,11 +1153,11 @@ extern int spa_history_log_nvl(spa_t *spa, nvlist_t *nvl); extern void spa_history_log_version(spa_t *spa, const char *operation, dmu_tx_t *tx); extern void spa_history_log_internal(spa_t *spa, const char *operation, - dmu_tx_t *tx, const char *fmt, ...); + dmu_tx_t *tx, const char *fmt, ...) __printflike(4, 5); extern void spa_history_log_internal_ds(struct dsl_dataset *ds, const char *op, - dmu_tx_t *tx, const char *fmt, ...); + dmu_tx_t *tx, const char *fmt, ...) __printflike(4, 5); extern void spa_history_log_internal_dd(dsl_dir_t *dd, const char *operation, - dmu_tx_t *tx, const char *fmt, ...); + dmu_tx_t *tx, const char *fmt, ...) __printflike(4, 5); extern const char *spa_state_to_name(spa_t *spa); -- cgit v1.2.3