diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | include/programs/xmalloc.h | 6 | ||||
-rw-r--r-- | include/sys/cdefs.h | 2 | ||||
-rw-r--r-- | misc/sys/cdefs.h | 9 |
4 files changed, 19 insertions, 5 deletions
@@ -1,5 +1,12 @@ 2013-02-18 Mike Frysinger <vapier@gentoo.org> + * include/programs/xmalloc.h: Change __attribute_alloc_size to + __attribute_alloc_size__. + * include/sys/cdefs.h (__attribute_alloc_size): Macro removed. + * misc/sys/cdefs.h (__attribute_alloc_size__): New macro. + +2013-02-18 Mike Frysinger <vapier@gentoo.org> + * include/programs/xmalloc.h: New file. * catgets/gencat.c: Include it. (xmalloc, xcalloc, xrealloc, xstrdup): Don't declare them. diff --git a/include/programs/xmalloc.h b/include/programs/xmalloc.h index 7f3aba5..f427885 100644 --- a/include/programs/xmalloc.h +++ b/include/programs/xmalloc.h @@ -23,11 +23,11 @@ /* Prototypes for a few program-wide used functions. */ extern void *xmalloc (size_t n) - __attribute_malloc__ __attribute_alloc_size (1); + __attribute_malloc__ __attribute_alloc_size__ ((1)); extern void *xcalloc (size_t n, size_t s) - __attribute_malloc__ __attribute_alloc_size (1, 2); + __attribute_malloc__ __attribute_alloc_size__ ((1, 2)); extern void *xrealloc (void *o, size_t n) - __attribute_malloc__ __attribute_alloc_size (2); + __attribute_malloc__ __attribute_alloc_size__ ((2)); extern char *xstrdup (const char *) __attribute_malloc__; #endif /* xmalloc.h */ diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h index 71baa1a..524fe57 100644 --- a/include/sys/cdefs.h +++ b/include/sys/cdefs.h @@ -13,8 +13,6 @@ extern void __chk_fail (void) __attribute__ ((__noreturn__)); libc_hidden_proto (__chk_fail) rtld_hidden_proto (__chk_fail) - -# define __attribute_alloc_size(...) __attribute__ ((alloc_size (__VA_ARGS__))) #endif #endif diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index 7794e4e..f5f18e9 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -214,6 +214,15 @@ # define __attribute_malloc__ /* Ignore */ #endif +/* Tell the compiler which arguments to an allocation function + indicate the size of the allocation. */ +#if __GNUC_PREREQ (4, 3) +# define __attribute_alloc_size__(params) \ + __attribute__ ((__alloc_size__ params)) +#else +# define __attribute_alloc_size__(params) /* Ignore. */ +#endif + /* At some point during the gcc 2.96 development the `pure' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ |