From 5b3c5f49b103d45ce11cd7c0319c82b95ee61e58 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Tue, 3 Mar 2015 16:11:26 +0100 Subject: [PATCH] Tag the Exception constructor as a printf function This allows the compiler to analyse the format strings and arguments for correctness. --- common/rdr/Exception.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/common/rdr/Exception.h b/common/rdr/Exception.h index ea10f9d7..f533dcce 100644 --- a/common/rdr/Exception.h +++ b/common/rdr/Exception.h @@ -21,12 +21,18 @@ #ifndef __RDR_EXCEPTION_H__ #define __RDR_EXCEPTION_H__ +#ifdef __GNUC__ +# define __printf_attr(a, b) __attribute__((__format__ (__printf__, a, b))) +#else +# define __printf_attr(a, b) +#endif // __GNUC__ + namespace rdr { struct Exception { enum { len = 256 }; char str_[len]; - Exception(const char *format = 0, ...); + Exception(const char *format = 0, ...) __printf_attr(2, 3); virtual ~Exception() {} virtual const char* str() const { return str_; } }; -- 2.39.5