Add MSVC implementations of G_GNUC_*_IGNORE_DEPRECATIONS
authorChun-wei Fan <fanchunwei@src.gnome.org>
Fri, 19 Jul 2013 11:10:41 +0000 (19:10 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Mon, 29 Jul 2013 02:26:01 +0000 (10:26 +0800)
As Visual Studio 2008 and later have support for the __pragma keyword,
where the compiler pragmas can be used in a macro, we can support
G_GNUC_BEGIN_IGNORE_DEPRECATIONS and G_GNUC_END_IGNORE_DEPRECATIONS
for Visual Studio 2008 and later, so many deprecation (C4996) warnings
can be suppressed when using these compilers when we use these macros
in the code.

https://bugzilla.gnome.org/show_bug.cgi?id=704543

glib/gmacros.h

index 9526cbd..b37b08e 100644 (file)
   _Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
 #define G_GNUC_END_IGNORE_DEPRECATIONS                 \
   _Pragma ("GCC diagnostic pop")
+#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
+#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS               \
+  __pragma (warning (push))  \
+  __pragma (warning (disable : 4996))
+#define G_GNUC_END_IGNORE_DEPRECATIONS                 \
+  __pragma (warning (pop))
 #else
 #define G_GNUC_BEGIN_IGNORE_DEPRECATIONS
 #define G_GNUC_END_IGNORE_DEPRECATIONS