Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
deprecated.h
Go to the documentation of this file.
1 #ifndef RBIMPL_ATTR_DEPRECATED_H /*-*-C++-*-vi:se ft=cpp:*/
2 #define RBIMPL_ATTR_DEPRECATED_H
29 
31 #if defined(__COVERITY__)
32 /* Coverity Scan emulates gcc but seems not to support this attribute correctly */
33 # define RBIMPL_ATTR_DEPRECATED(msg)
34 
35 #elif RBIMPL_HAS_EXTENSION(attribute_deprecated_with_message)
36 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))
37 
38 #elif defined(__cplusplus) && RBIMPL_COMPILER_SINCE(GCC, 10, 1, 0) && RBIMPL_COMPILER_BEFORE(GCC, 10, 3, 0)
39 # /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95302 */
40 # define RBIMPL_ATTR_DEPRECATED(msg) /* disable until they fix this bug */
41 
42 #elif RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0)
43 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))
44 
45 #elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0)
46 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))
47 
48 #elif RBIMPL_HAS_ATTRIBUTE(deprecated) /* but not with message. */
49 # define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__))
50 
51 #elif RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0)
52 # define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated msg)
53 
54 #elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(deprecated)
55 # define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated)
56 
57 #elif RBIMPL_HAS_CPP_ATTRIBUTE(deprecated)
58 # define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]]
59 
60 #elif RBIMPL_HAS_C_ATTRIBUTE(deprecated)
61 # define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]]
62 
63 #else
64 # define RBIMPL_ATTR_DEPRECATED(msg) /* void */
65 #endif
66 
69 #if defined(RUBY_EXPORT)
70 # define RBIMPL_ATTR_DEPRECATED_EXT(msg) /* void */
71 #else
72 # define RBIMPL_ATTR_DEPRECATED_EXT(msg) RBIMPL_ATTR_DEPRECATED(msg)
73 #endif
74 
75 #endif /* RBIMPL_ATTR_DEPRECATED_H */
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.