This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[PATCH 4/6] Define a new __alloc_size2 attribute to complement the exiting support.
- From: Sebastian Huber <sebastian dot huber at embedded-brains dot de>
- To: newlib at sourceware dot org
- Date: Fri, 27 Jul 2018 09:40:40 +0200
- Subject: [PATCH 4/6] Define a new __alloc_size2 attribute to complement the exiting support.
- References: <20180727074042.23644-1-sebastian.huber@embedded-brains.de>
From: pfg <pfg@FreeBSD.org>
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
---
newlib/libc/include/sys/cdefs.h | 2 ++
1 file changed, 2 insertions(+)
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))
--
2.13.7