summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2015-04-07 14:36:16 +0200
committerTobias Klauser <tklauser@distanz.ch>2015-04-07 14:41:45 +0200
commitbb77b49265877b68fc316d11a719527ecf91d594 (patch)
treef76e62ea1cf39b54d9f0b486745f97648b3f8f6a
parent87103d95678b0e6c784909e0bc610ed7ae02d2c9 (diff)
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 <tklauser@distanz.ch>
-rw-r--r--built_in.h6
-rw-r--r--xmalloc.h20
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)
{