modify attributes header to include individual checks as well

This commit is contained in:
2025-03-22 13:55:40 +01:00
parent c87c76ceab
commit 94cf8cbfaf

View File

@@ -1,13 +1,35 @@
#pragma once
// default attribute definitions (empty)
#define atrb_deprecated
#define atrb_unused
#define atrb_pure
#define atrb_const
// define the attributes where possible
#if defined(__GNUC__) || defined(__clang__)
# define atrb_deprecated __attribute__((deprecated))
# define atrb_unused __attribute__((unused))
# define atrb_pure __attribute__((pure))
# define atrb_const __attribute__((const))
#else
# define atrb_deprecated
# define atrb_unused
# define atrb_pure
# define atrb_const
# if __has_attribute(deprecated)
# undef atrb_deprecated
# define atrb_deprecated __attribute__((deprecated))
# endif
# if __has_attribute(unused)
# undef atrb_unused
# define atrb_unused __attribute__((unused))
# endif
# if __has_attribute(pure)
# undef atrb_pure
# define atrb_pure __attribute__((pure))
# endif
# if __has_attribute(const)
# undef atrb_const
# define atrb_const __attribute__((const))
# endif
#elif defined(_MSC_VER)
# undef atrb_depatrb_deprecated
# define atrb_deprecated __declspec(deprecated)
#endif