From 064cee5a224129d200a4a32a27e2ba8114a2b564 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 20 May 2015 10:28:12 +0200 Subject: kern: add function attributes to the printf-functions * kern/printf.h (sprintf, snprintf, vsnprintf, printf): Add the `printf' function attribute that allows the compiler to check the format strings and arguments. --- kern/printf.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/kern/printf.h b/kern/printf.h index 0f8b3281..86857d33 100644 --- a/kern/printf.h +++ b/kern/printf.h @@ -39,11 +39,16 @@ extern void printnum (unsigned long u, int base, void (*putc)(char, vm_offset_t), vm_offset_t putc_arg); -extern int sprintf (char *buf, const char *fmt, ...); -extern int snprintf (char *buf, size_t size, const char *fmt, ...); -extern int vsnprintf (char *buf, size_t size, const char *fmt, va_list args); +extern int sprintf (char *buf, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +extern int snprintf (char *buf, size_t size, const char *fmt, ...) + __attribute__ ((format (printf, 3, 4))); +extern int vsnprintf (char *buf, size_t size, const char *fmt, va_list args) + __attribute__ ((format (printf, 3, 0))); -extern int printf (const char *fmt, ...); + +extern int printf (const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); #define printf_once(fmt, ...) \ MACRO_BEGIN \ -- cgit v1.2.3