diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-26 16:18:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-26 16:18:39 +0000 |
commit | 5242eef8fc54636a41701fd9d7083ba6e4a4e0b3 (patch) | |
tree | e6a0980092957865a937cc0f34446df3d5194e99 /lib/attr.h | |
parent | Releasing progress-linux version 1:4.13+dfsg1-5~progress7.99u1. (diff) | |
download | shadow-5242eef8fc54636a41701fd9d7083ba6e4a4e0b3.tar.xz shadow-5242eef8fc54636a41701fd9d7083ba6e4a4e0b3.zip |
Merging upstream version 1:4.15.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/attr.h')
-rw-r--r-- | lib/attr.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/attr.h b/lib/attr.h new file mode 100644 index 0000000..3835848 --- /dev/null +++ b/lib/attr.h @@ -0,0 +1,33 @@ +#ifndef SHADOW_INCLUDE_LIB_ATTR_H_ +#define SHADOW_INCLUDE_LIB_ATTR_H_ + + +#include "config.h" + + +#if defined(__GNUC__) +# define MAYBE_UNUSED __attribute__((unused)) +# define NORETURN __attribute__((__noreturn__)) +# define format_attr(type, fmt, va) __attribute__((format(type, fmt, va))) +# define ATTR_ACCESS(...) __attribute__((access(__VA_ARGS__))) +#else +# define MAYBE_UNUSED +# define NORETURN +# define format_attr(type, fmt, va) +# define ATTR_ACCESS(...) +#endif + +#if (__GNUC__ >= 11) && !defined(__clang__) +# define ATTR_MALLOC(deallocator) [[gnu::malloc(deallocator)]] +#else +# define ATTR_MALLOC(deallocator) +#endif + +#if (__GNUC__ >= 14) +# define ATTR_STRING(...) [[gnu::null_terminated_string_arg(__VA_ARGS__)]] +#else +# define ATTR_STRING(...) +#endif + + +#endif // include guard |