Browse Source

Add printf format attributes

When compiling with gcc, we already include the attribute on check_msg()
to give compiler warnings about mismatches between printf() like format
strings and the corresponding arguments.  This patch adds similar
attributes for lexical_error() and die().

Suggested-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
David Gibson 8 years ago
parent
commit
34a9886a17
  1. 6
      dtc-lexer.l
  2. 14
      util.h

6
dtc-lexer.l

@ -62,7 +62,13 @@ static int dts_version = 1; @@ -62,7 +62,13 @@ static int dts_version = 1;

static void push_input_file(const char *filename);
static bool pop_input_file(void);
#ifdef __GNUC__
static void lexical_error(const char *fmt, ...)
__attribute__((format (printf, 1, 2)));
#else
static void lexical_error(const char *fmt, ...);
#endif

%}

%%

14
util.h

@ -27,7 +27,13 @@ @@ -27,7 +27,13 @@

#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))

static inline void __attribute__((noreturn)) die(const char *str, ...)
#ifdef __GNUC__
static inline void
__attribute__((noreturn)) __attribute__((format (printf, 1, 2)))
die(const char *str, ...)
#else
static inline void die(const char *str, ...)
#endif
{
va_list ap;

@ -59,7 +65,13 @@ static inline void *xrealloc(void *p, size_t len) @@ -59,7 +65,13 @@ static inline void *xrealloc(void *p, size_t len)
}

extern char *xstrdup(const char *s);

#ifdef __GNUC__
extern int __attribute__((format (printf, 2, 3)))
xasprintf(char **strp, const char *fmt, ...);
#else
extern int xasprintf(char **strp, const char *fmt, ...);
#endif
extern char *join_path(const char *path, const char *name);

/**

Loading…
Cancel
Save