#ifndef ATTRIBUTE_H_
#define ATTRIBUTE_H_
#if (defined(__GNUC__) || defined(__clang__) || defined(_lint)) && !defined(__INTEL_COMPILER)
# if defined(__clang__)
# pragma clang diagnostic ignored "-Wignored-attributes"
# endif
# define is_UNUSED __attribute__((__unused__))
# define is_NORETURN __attribute__((__noreturn__))
# define is_CONST __attribute__((__const__))
# define is_PURE __attribute__((__pure__))
# if (defined(__GNUC__) && __GNUC__ >= 8) || (defined(__clang__) && __clang_major__ >= 7 && !defined(__apple_build_version__)) || defined(_lint)
# define fall_THROUGH __attribute__((__fallthrough__));
# define returns_NONNULL __attribute__((__returns_nonnull__))
# else
# define fall_THROUGH
# define returns_NONNULL
# endif
#else
# define is_UNUSED
# define is_NORETURN
# define is_CONST
# define is_PURE
# define returns_NONNULL
# define fall_THROUGH
#endif
#if (defined(__GNUC__) || defined(__clang__)) && !defined(_lint) && !defined(__INTEL_COMPILER)
# define is_MALLOC __attribute__((__malloc__))
# define always_INLINE __attribute__((__always_inline__))
# define has_SIZE1 __attribute__((__alloc_size__ (1)))
# define has_SIZE1x2 __attribute__((__alloc_size__ (1,2)))
# define is_COLD __attribute__((__cold__))
# define is_HOT __attribute__((__hot__))
# define expects_NONNULL __attribute__((__nonnull__))
# define expects_NONNULL1 __attribute__((__nonnull__ (1)))
# define expects_NONNULL12 __attribute__((__nonnull__ (1,2)))
# define expects_NONNULL13 __attribute__((__nonnull__ (1,3)))
#else
# define is_MALLOC
# define always_INLINE
# define has_SIZE1
# define has_SIZE1x2
# define is_COLD
# define is_HOT
# define expects_NONNULL
# define expects_NONNULL1
# define expects_NONNULL12
# define expects_NONNULL13
#endif
#endif