1 #ifndef RBIMPL_ATTR_DEPRECATED_H
2 #define RBIMPL_ATTR_DEPRECATED_H
31 #if defined(__COVERITY__)
33 # define RBIMPL_ATTR_DEPRECATED(msg)
35 #elif RBIMPL_HAS_EXTENSION(attribute_deprecated_with_message)
36 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))
38 #elif defined(__cplusplus) && RBIMPL_COMPILER_SINCE(GCC, 10, 1, 0) && RBIMPL_COMPILER_BEFORE(GCC, 10, 3, 0)
40 # define RBIMPL_ATTR_DEPRECATED(msg)
42 #elif RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0)
43 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))
45 #elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0)
46 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))
48 #elif RBIMPL_HAS_ATTRIBUTE(deprecated)
49 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__))
51 #elif RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0)
52 # define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated msg)
54 #elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(deprecated)
55 # define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated)
57 #elif RBIMPL_HAS_CPP_ATTRIBUTE(deprecated)
58 # define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]]
60 #elif RBIMPL_HAS_C_ATTRIBUTE(deprecated)
61 # define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]]
64 # define RBIMPL_ATTR_DEPRECATED(msg)
69 #if defined(RUBY_EXPORT)
70 # define RBIMPL_ATTR_DEPRECATED_EXT(msg)
72 # define RBIMPL_ATTR_DEPRECATED_EXT(msg) RBIMPL_ATTR_DEPRECATED(msg)
Defines RBIMPL_HAS_ATTRIBUTE.
Defines RBIMPL_HAS_C_ATTRIBUTE.
Defines RBIMPL_COMPILER_SINCE.
Defines RBIMPL_HAS_CPP_ATTRIBUTE.
Defines RBIMPL_HAS_DECLSPEC_ATTRIBUTE.
Defines RBIMPL_HAS_EXTENSION.