summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2012-12-30 13:07:07 -0500
committerMike Frysinger <vapier@gentoo.org>2013-02-18 17:18:57 -0500
commit2f62b9ee0c086f72ded8abfe84c6d5ab86c49ab1 (patch)
tree67367e2cac7b1f1263ee90edcb7f3388df51bec4
parent6ff444c4184433586a8879376bd5006eb793499a (diff)
downloadglibc-2f62b9ee0c086f72ded8abfe84c6d5ab86c49ab1.tar.gz
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>
-rw-r--r--ChangeLog7
-rw-r--r--include/programs/xmalloc.h6
-rw-r--r--include/sys/cdefs.h2
-rw-r--r--misc/sys/cdefs.h9
4 files changed, 19 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 3767bf1dee..12559ab9df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 7f3aba5f37..f4278852be 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 71baa1a2d2..524fe57a25 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 7794e4e26d..f5f18e914c 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. */