1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00

sys/cdefs.h: export __attribute_alloc_size__

Since we want to use this in installed headers, move it to the installed
sys/cdefs.h.  This requires a slight tweaking of the name (add trailing
underscores).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger
2012-12-30 13:07:07 -05:00
parent 6ff444c418
commit 2f62b9ee0c
4 changed files with 19 additions and 5 deletions

View File

@ -1,3 +1,10 @@
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> 2013-02-18 Mike Frysinger <vapier@gentoo.org>
* include/programs/xmalloc.h: New file. * include/programs/xmalloc.h: New file.

View File

@ -23,11 +23,11 @@
/* Prototypes for a few program-wide used functions. */ /* Prototypes for a few program-wide used functions. */
extern void *xmalloc (size_t n) 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) 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) 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__; extern char *xstrdup (const char *) __attribute_malloc__;
#endif /* xmalloc.h */ #endif /* xmalloc.h */

View File

@ -13,8 +13,6 @@ extern void __chk_fail (void) __attribute__ ((__noreturn__));
libc_hidden_proto (__chk_fail) libc_hidden_proto (__chk_fail)
rtld_hidden_proto (__chk_fail) rtld_hidden_proto (__chk_fail)
# define __attribute_alloc_size(...) __attribute__ ((alloc_size (__VA_ARGS__)))
#endif #endif
#endif #endif

View File

@ -214,6 +214,15 @@
# define __attribute_malloc__ /* Ignore */ # define __attribute_malloc__ /* Ignore */
#endif #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 /* At some point during the gcc 2.96 development the `pure' attribute
for functions was introduced. We don't want to use it unconditionally for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */ (although this would be possible) since it generates warnings. */