Repair sys/cdefs.h enough to be usable with GCC 5.x
The __alloc_size and __alloc_align need to be defined to nothingness for lint, but the existing check is deficient and allows attributes with working __has_attrubute() to slip through.
This commit is contained in:
parent
c247c492af
commit
2c51488ec8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=287206
@ -39,7 +39,6 @@
|
|||||||
/*
|
/*
|
||||||
* Testing against Clang-specific extensions.
|
* Testing against Clang-specific extensions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __has_attribute
|
#ifndef __has_attribute
|
||||||
#define __has_attribute(x) 0
|
#define __has_attribute(x) 0
|
||||||
#endif
|
#endif
|
||||||
@ -212,6 +211,8 @@
|
|||||||
#define __unused
|
#define __unused
|
||||||
#define __packed
|
#define __packed
|
||||||
#define __aligned(x)
|
#define __aligned(x)
|
||||||
|
#define __alloc_align(x)
|
||||||
|
#define __alloc_size(x)
|
||||||
#define __section(x)
|
#define __section(x)
|
||||||
#define __weak_symbol
|
#define __weak_symbol
|
||||||
#else
|
#else
|
||||||
@ -236,6 +237,16 @@
|
|||||||
#define __aligned(x) __attribute__((__aligned__(x)))
|
#define __aligned(x) __attribute__((__aligned__(x)))
|
||||||
#define __section(x) __attribute__((__section__(x)))
|
#define __section(x) __attribute__((__section__(x)))
|
||||||
#endif
|
#endif
|
||||||
|
#if __has_attribute(alloc_size) || __GNUC_PREREQ__(4, 3)
|
||||||
|
#define __alloc_size(x) __attribute__((__alloc_size__(x)))
|
||||||
|
#else
|
||||||
|
#define __alloc_size(x)
|
||||||
|
#endif
|
||||||
|
#if __has_attribute(alloc_align) || __GNUC_PREREQ__(4, 9)
|
||||||
|
#define __alloc_align(x) __attribute__((__alloc_align__(x)))
|
||||||
|
#else
|
||||||
|
#define __alloc_align(x)
|
||||||
|
#endif
|
||||||
#endif /* lint */
|
#endif /* lint */
|
||||||
|
|
||||||
#if !__GNUC_PREREQ__(2, 95)
|
#if !__GNUC_PREREQ__(2, 95)
|
||||||
@ -371,24 +382,12 @@
|
|||||||
#define __returns_twice
|
#define __returns_twice
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __has_attribute(alloc_size) || __GNUC_PREREQ__(4, 3)
|
|
||||||
#define __alloc_size(x) __attribute__((__alloc_size__(x)))
|
|
||||||
#else
|
|
||||||
#define __alloc_size(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __has_builtin(__builtin_unreachable) || __GNUC_PREREQ__(4, 6)
|
#if __has_builtin(__builtin_unreachable) || __GNUC_PREREQ__(4, 6)
|
||||||
#define __unreachable() __builtin_unreachable()
|
#define __unreachable() __builtin_unreachable()
|
||||||
#else
|
#else
|
||||||
#define __unreachable() ((void)0)
|
#define __unreachable() ((void)0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __has_attribute(alloc_align) || __GNUC_PREREQ__(4, 9)
|
|
||||||
#define __alloc_align(x) __attribute__((__alloc_align__(x)))
|
|
||||||
#else
|
|
||||||
#define __alloc_align(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* XXX: should use `#if __STDC_VERSION__ < 199901'. */
|
/* XXX: should use `#if __STDC_VERSION__ < 199901'. */
|
||||||
#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
|
#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
|
||||||
#define __func__ NULL
|
#define __func__ NULL
|
||||||
|
Loading…
Reference in New Issue
Block a user