cdefs.h: Fix macros for pre-C99 compilers.

Older compilers, and compatibility modes, may not support variadic macros.
I normally wouldn't go out of my way to support those old compilers but
there is a prescendent in other system headers for using the same macro
multiple times, and the solution (although non-elegant IMHO) works.

Requested by:	bde
Solution by:	tijl
This commit is contained in:
Pedro F. Giffuni 2015-03-29 03:16:52 +00:00
parent e133fa3e58
commit 912a62418a

View File

@ -359,9 +359,11 @@
#endif
#if __GNUC_PREREQ__(3, 3)
#define __nonnull(...) __attribute__((__nonnull__(__VA_ARGS__)))
#define __nonnull(x) __attribute__((__nonnull__(x)))
#define __nonnull_all __attribute__((__nonnull__))
#else
#define __nonnull(...)
#define __nonnull(x)
#define __nonnull_all
#endif
#if __GNUC_PREREQ__(3, 4)
@ -379,9 +381,9 @@
#endif
#if __has_attribute(alloc_size) || __GNUC_PREREQ__(4, 3)
#define __alloc_size(...) __attribute__((__alloc_size__(__VA_ARGS__)))
#define __alloc_size(x) __attribute__((__alloc_size__(x)))
#else
#define __alloc_size(...)
#define __alloc_size(x)
#endif
/* XXX: should use `#if __STDC_VERSION__ < 199901'. */