#include "zone/attributes.h"
#ifndef ATTRIBUTES_H
#define ATTRIBUTES_H
#define nonnull(params) zone_nonnull(params)
#define nonnull_all zone_nonnull_all
#if _MSC_VER
# define really_inline __forceinline
# define never_inline __declspec(noinline)
# define warn_unused_result
# define no_sanitize_undefined
# define likely(params) (params)
# define unlikely(params) (params)
#else
#if defined __has_builtin
# define has_builtin(params) __has_builtin(params)
#else
# define has_builtin(params) (0)
#endif
# if (zone_has_attribute(always_inline) || zone_has_gnuc(3, 1)) && ! defined __NO_INLINE__
# define really_inline inline __attribute__((always_inline))
# else
# define really_inline inline
# endif
# if zone_has_attribute(noinline) || zone_has_gnuc(2, 96)
# define never_inline __attribute__((noinline))
# else
# define never_inline
# endif
# if zone_has_attribute(warn_unused_result)
# define warn_unused_result __attribute__((warn_unused_result))
# else
# define warn_unused_result
# endif
# if zone_has_attribute(no_sanitize)
# define no_sanitize_undefined __attribute__((no_sanitize("undefined")))
# elif zone_has_attribute(no_sanitize_undefined)
# define no_sanitize_undefined
# else
# define no_sanitize_undefined
# endif
# if has_builtin(__builtin_expect)
# define likely(params) __builtin_expect(!!(params), 1)
# define unlikely(params) __builtin_expect(!!(params), 0)
# else
# define likely(params) (params)
# define unlikely(params) (params)
# endif
#endif
#endif