Re: [PATCH 3/3] libvhost-user: Add format attribute to local function vu_panic
Le 22/04/2022 à 09:01, Stefan Weil a écrit : Signed-off-by: Stefan Weil --- It would be good to add format attributes to local functions, too (like it is done here) to avoid future format bugs. The changes here could be simplified by including a glib header, but from the comments I assumed that is unwanted here? subprojects/libvhost-user/libvhost-user.c | 13 - 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvhost-user/libvhost-user.c index 94645f9154..29ab85fc9d 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -45,6 +45,17 @@ #include "libvhost-user.h" /* usually provided by GLib */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) +#if !defined(__clang__) && (__GNUC__ == 4 && __GNUC_MINOR__ == 4) +#define G_GNUC_PRINTF(format_idx, arg_idx) \ + __attribute__((__format__(gnu_printf, format_idx, arg_idx))) +#else +#define G_GNUC_PRINTF(format_idx, arg_idx) \ + __attribute__((__format__(__printf__, format_idx, arg_idx))) +#endif +#else /* !__GNUC__ */ +#define G_GNUC_PRINTF(format_idx, arg_idx) +#endif /* !__GNUC__ */ #ifndef MIN #define MIN(x, y) ({\ typeof(x) _min1 = (x); \ @@ -151,7 +162,7 @@ vu_request_to_string(unsigned int req) } } -static void +static void G_GNUC_PRINTF(2, 3) vu_panic(VuDev *dev, const char *msg, ...) { char *buf = NULL; Applied to my trivial-patches branch. Thanks, Laurent
Re: [PATCH 3/3] libvhost-user: Add format attribute to local function vu_panic
Hi On Fri, Apr 22, 2022 at 11:08 AM Stefan Weil wrote: > Signed-off-by: Stefan Weil > Reviewed-by: Marc-André Lureau > --- > > It would be good to add format attributes to local functions, too (like > it is done here) to avoid future format bugs. > > The changes here could be simplified by including a glib header, > but from the comments I assumed that is unwanted here? > For historical reasons, libvhost-user.c doesn't depend on glib. Whether this is useful to anyone isn't obvious :) > subprojects/libvhost-user/libvhost-user.c | 13 - > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/subprojects/libvhost-user/libvhost-user.c > b/subprojects/libvhost-user/libvhost-user.c > index 94645f9154..29ab85fc9d 100644 > --- a/subprojects/libvhost-user/libvhost-user.c > +++ b/subprojects/libvhost-user/libvhost-user.c > @@ -45,6 +45,17 @@ > #include "libvhost-user.h" > > /* usually provided by GLib */ > +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) > +#if !defined(__clang__) && (__GNUC__ == 4 && __GNUC_MINOR__ == 4) > +#define G_GNUC_PRINTF(format_idx, arg_idx) \ > + __attribute__((__format__(gnu_printf, format_idx, arg_idx))) > +#else > +#define G_GNUC_PRINTF(format_idx, arg_idx) \ > + __attribute__((__format__(__printf__, format_idx, arg_idx))) > +#endif > +#else /* !__GNUC__ */ > +#define G_GNUC_PRINTF(format_idx, arg_idx) > +#endif /* !__GNUC__ */ > #ifndef MIN > #define MIN(x, y) ({\ > typeof(x) _min1 = (x); \ > @@ -151,7 +162,7 @@ vu_request_to_string(unsigned int req) > } > } > > -static void > +static void G_GNUC_PRINTF(2, 3) > vu_panic(VuDev *dev, const char *msg, ...) > { > char *buf = NULL; > -- > 2.30.2 > > > -- Marc-André Lureau
[PATCH 3/3] libvhost-user: Add format attribute to local function vu_panic
Signed-off-by: Stefan Weil --- It would be good to add format attributes to local functions, too (like it is done here) to avoid future format bugs. The changes here could be simplified by including a glib header, but from the comments I assumed that is unwanted here? subprojects/libvhost-user/libvhost-user.c | 13 - 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvhost-user/libvhost-user.c index 94645f9154..29ab85fc9d 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -45,6 +45,17 @@ #include "libvhost-user.h" /* usually provided by GLib */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) +#if !defined(__clang__) && (__GNUC__ == 4 && __GNUC_MINOR__ == 4) +#define G_GNUC_PRINTF(format_idx, arg_idx) \ + __attribute__((__format__(gnu_printf, format_idx, arg_idx))) +#else +#define G_GNUC_PRINTF(format_idx, arg_idx) \ + __attribute__((__format__(__printf__, format_idx, arg_idx))) +#endif +#else /* !__GNUC__ */ +#define G_GNUC_PRINTF(format_idx, arg_idx) +#endif /* !__GNUC__ */ #ifndef MIN #define MIN(x, y) ({\ typeof(x) _min1 = (x); \ @@ -151,7 +162,7 @@ vu_request_to_string(unsigned int req) } } -static void +static void G_GNUC_PRINTF(2, 3) vu_panic(VuDev *dev, const char *msg, ...) { char *buf = NULL; -- 2.30.2