summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2018-01-21 20:27:47 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-07-30 10:47:57 +0200
commit271e856a49731edb88427f4a7aeb388825e366c3 (patch)
treeee8efe3783f94f30dd511b7cfaa4e858a9b26ebb
parent1736bd300339aa54ddf5f179dbb40c4b19079dd7 (diff)
downloadcygnal-271e856a49731edb88427f4a7aeb388825e366c3.tar.gz
cygnal-271e856a49731edb88427f4a7aeb388825e366c3.tar.bz2
cygnal-271e856a49731edb88427f4a7aeb388825e366c3.zip
Define a new __alloc_size2 attribute to complement the exiting support.
At least on GCC7 calling __alloc_size(x) twice is not equivalent to calling using the attribute once with two arguments. The later is the documented use in GCC documentation so add a new alloc_size(n, x) alternative to cover for the few places where it is used: basically: calloc(3), reallocarray(3) and mallocarray(9). Submitted by: Mark Millard MFC after: 3 days Reference: http://docs.freebsd.org/cgi/mid.cgi?F227842D-6BE2-4680-82E7-07906AF61CD7
-rw-r--r--newlib/libc/include/sys/cdefs.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/newlib/libc/include/sys/cdefs.h b/newlib/libc/include/sys/cdefs.h
index db870783e..7c2aa3bc1 100644
--- a/newlib/libc/include/sys/cdefs.h
+++ b/newlib/libc/include/sys/cdefs.h
@@ -250,8 +250,10 @@
#endif
#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__)
#define __alloc_size(x) __attribute__((__alloc_size__ x))
+#define __alloc_size2(n, x) __attribute__((__alloc_size__(n, x)))
#else
#define __alloc_size(x)
+#define __alloc_size2(n, x)
#endif
#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__)
#define __alloc_align(x) __attribute__((__alloc_align__ x))