blob: e9d5fc1eb6a1c0e0f6fa100a80aaffb0ccf28b5d [file]
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
// SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
#ifndef INCLUDE_A2I_ATTR_H_
#define INCLUDE_A2I_ATTR_H_
#if (__GNUC__ >= 14)
# define A2I_ATTR_STRING(n) __attribute__((__null_terminated_string_arg__(n)))
#else
# define A2I_ATTR_STRING(n)
#endif
#if defined(__clang__)
# define A2I_ATTR_ACCESS(...)
#else
# define A2I_ATTR_ACCESS(...) __attribute__((access(__VA_ARGS__)))
#endif
#define A2I_ATTR_LEAF __attribute__((__leaf__))
#define A2I_ATTR_NONNULL(...) __attribute__((__nonnull__(__VA_ARGS__)))
#define A2I_ATTR_NOTHROW __attribute__((__nothrow__))
#define A2I_ATTR_ALIAS(original) __attribute__((alias(original)))
#define A2I_ATTR_VISIBILITY(v) __attribute__((visibility(v)))
#endif // include guard