[glib: 1/2] Fix false deprecation warnings on old GCC/MSVC
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 1/2] Fix false deprecation warnings on old GCC/MSVC
- Date: Tue, 7 Sep 2021 10:45:07 +0000 (UTC)
commit 508352339aecc0010178e657f1ee41eb4f0a104c
Author: Evan Miller <emmiller gmail com>
Date: Mon Sep 6 15:48:08 2021 -0400
Fix false deprecation warnings on old GCC/MSVC
Closes #2472
docs/reference/glib/glib-sections.txt | 1 +
glib/gmacros.h | 14 ++++++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt
index 6533764e1..efb261bfd 100644
--- a/docs/reference/glib/glib-sections.txt
+++ b/docs/reference/glib/glib-sections.txt
@@ -738,6 +738,7 @@ G_HAVE_GNUC_VARARGS
G_HAVE_ISO_VARARGS
G_HAVE_GROWING_STACK
G_VA_COPY_AS_ARRAY
+GLIB_CANNOT_IGNORE_DEPRECATIONS
GLIB_DEPRECATED
GLIB_DEPRECATED_FOR
GLIB_UNAVAILABLE
diff --git a/glib/gmacros.h b/glib/gmacros.h
index 27c2c48ac..7fc34d59d 100644
--- a/glib/gmacros.h
+++ b/glib/gmacros.h
@@ -720,6 +720,7 @@
#else
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#define G_GNUC_END_IGNORE_DEPRECATIONS
+#define GLIB_CANNOT_IGNORE_DEPRECATIONS
#endif
/**
@@ -1090,7 +1091,14 @@
#define G_UNLIKELY(expr) (expr)
#endif
-#if G_GNUC_CHECK_VERSION(3, 1) || defined(__clang__)
+/* GLIB_CANNOT_IGNORE_DEPRECATIONS is defined above for compilers that do not
+ * have a way to temporarily suppress deprecation warnings. In these cases,
+ * suppress the deprecated attribute altogether (otherwise a simple #include
+ * <glib.h> will emit a barrage of warnings).
+ */
+#if defined(GLIB_CANNOT_IGNORE_DEPRECATIONS)
+#define G_DEPRECATED
+#elif G_GNUC_CHECK_VERSION(3, 1) || defined(__clang__)
#define G_DEPRECATED __attribute__((__deprecated__))
#elif defined(_MSC_VER) && (_MSC_VER >= 1300)
#define G_DEPRECATED __declspec(deprecated)
@@ -1098,7 +1106,9 @@
#define G_DEPRECATED
#endif
-#if G_GNUC_CHECK_VERSION(4, 5) || defined(__clang__)
+#if defined(GLIB_CANNOT_IGNORE_DEPRECATIONS)
+#define G_DEPRECATED_FOR(f) G_DEPRECATED
+#elif G_GNUC_CHECK_VERSION(4, 5) || defined(__clang__)
#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"))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]