diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-26 16:18:36 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-26 16:18:36 +0000 |
commit | 6c3ea4f47ea280811a7fe53a22f7832e4533c9ec (patch) | |
tree | 3d7ed5da23b5dbf6f9e450dfb61642832249c31e /lib/attr.h | |
parent | Adding upstream version 1:4.13+dfsg1. (diff) | |
download | shadow-6c3ea4f47ea280811a7fe53a22f7832e4533c9ec.tar.xz shadow-6c3ea4f47ea280811a7fe53a22f7832e4533c9ec.zip |
Adding upstream version 1:4.15.2.upstream/1%4.15.2upstream
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 |