From bb77b49265877b68fc316d11a719527ecf91d594 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 7 Apr 2015 14:36:16 +0200 Subject: xmalloc: Add attribute warn_unused_result to allocation functions Add the warn_unused_result GCC function attribute to all allocation functions in xmalloc. Signed-off-by: Tobias Klauser --- built_in.h | 6 +++++- xmalloc.h | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/built_in.h b/built_in.h index 8e1ba0d..6ebf27e 100644 --- a/built_in.h +++ b/built_in.h @@ -73,7 +73,11 @@ typedef uint8_t u8; #endif #ifndef __maybe_unused -# define __maybe_unused __attribute__ ((__unused__)) +# define __maybe_unused __attribute__((__unused__)) +#endif + +#ifndef __warn_unused_result +# define __warn_unused_result __attribute__((warn_unused_result)) #endif #ifndef noinline diff --git a/xmalloc.h b/xmalloc.h index 5d96f48..7228bde 100644 --- a/xmalloc.h +++ b/xmalloc.h @@ -6,17 +6,17 @@ #include "built_in.h" #include "die.h" -extern void *xmalloc(size_t size) __hidden; -extern void *xcalloc(size_t nmemb, size_t size) __hidden; -extern void *xzmalloc(size_t size) __hidden; -extern void *xmallocz(size_t size) __hidden; -extern void *xmalloc_aligned(size_t size, size_t alignment) __hidden; -extern void *xzmalloc_aligned(size_t size, size_t alignment) __hidden; -extern void *xmemdupz(const void *data, size_t len) __hidden; -extern void *xrealloc(void *ptr, size_t size) __hidden; +extern void *xmalloc(size_t size) __hidden __warn_unused_result; +extern void *xcalloc(size_t nmemb, size_t size) __hidden __warn_unused_result; +extern void *xzmalloc(size_t size) __hidden __warn_unused_result; +extern void *xmallocz(size_t size) __hidden __warn_unused_result; +extern void *xmalloc_aligned(size_t size, size_t alignment) __hidden __warn_unused_result; +extern void *xzmalloc_aligned(size_t size, size_t alignment) __hidden __warn_unused_result; +extern void *xmemdupz(const void *data, size_t len) __hidden __warn_unused_result; +extern void *xrealloc(void *ptr, size_t size) __hidden __warn_unused_result; extern void xfree_func(void *ptr) __hidden; -extern char *xstrdup(const char *str) __hidden; -extern char *xstrndup(const char *str, size_t size) __hidden; +extern char *xstrdup(const char *str) __hidden __warn_unused_result; +extern char *xstrndup(const char *str, size_t size) __hidden __warn_unused_result; static inline void __xfree(void *ptr) { -- cgit v1.2.3-54-g00ecf