GCC has a nifty ability to typecheck varargs functions that follow the printf conventions. This change uses that in HAIL_LOG. If you build with -Wall, gcc can now give warnings about HAIL_LOG invocations where there are too many or too few arguments, or arguments of the wrong types. For non-GCC compilers, don't do anything (yet). Signed-off-by: Colin McCabe <cmccabe@xxxxxxxxxxxxxx> --- include/hail_log.h | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/include/hail_log.h b/include/hail_log.h index d6794b4..88074a3 100644 --- a/include/hail_log.h +++ b/include/hail_log.h @@ -3,8 +3,15 @@ #include <stdbool.h> +#ifdef __GNUC__ +#define ATTR_PRINTF(x,y) __attribute__((format(printf, x, y))) +#else +#define ATTR_PRINTF(x,y) +#endif + struct hail_log { - void (*func)(int prio, const char *fmt, ...); + void (*func)(int prio, const char *fmt, ...) + ATTR_PRINTF(2,3); bool verbose; }; -- 1.6.2.5 -- To unsubscribe from this list: send the line "unsubscribe hail-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html