Commit 0da0411a authored by Matthias Clasen's avatar Matthias Clasen

Add better deprecation macros

Unlike G_GNUC_... macros, the new G_DEPRECATED[_FOR] are
meant as abstractions that work with different compilers.
Using a new name also lets us restrict it to 'must be placed
before the declaration', which works with more compilers.

https://bugzilla.gnome.org/show_bug.cgi?id=661438
parent a7311390
......@@ -362,6 +362,10 @@ G_HAVE_GNUC_VISIBILITY
G_GNUC_INTERNAL
G_GNUC_MAY_ALIAS
<SUBSECTION>
G_DEPRECATED
G_DEPRECATED_FOR
<SUBSECTION>
G_LIKELY
G_UNLIKELY
......
......@@ -287,4 +287,21 @@
#define G_UNLIKELY(expr) (expr)
#endif
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
#define G_DEPRECATED __attribute__((__deprecated__))
#elif defined(_MSC_VER) && (_MSC_VER >= 1300)
#define G_GNUC_DEPRECATED __declspec(deprecated)
#else
#define G_DEPRECATED
#endif
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
#define G_DEPRECATED_FOR(f) __attribute__((deprecated("Use '" #f "' instead")))
#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
#define G_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead"))
#else
#define G_DEPRECATED_FOR(f) G_DEPRECATED
#endif
#endif /* __G_MACROS_H__ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment