summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip@tecnocode.co.uk>2023-02-22 03:30:41 +0000
committerPhilip Withnall <philip@tecnocode.co.uk>2023-02-22 03:30:41 +0000
commitd8c913ac836c367a0c0779ffcb94f15a37c738df (patch)
tree3b1266f06c0790b441b72c1a04b8ebca6dc73651
parent796e21ee1c8f9f676bd9f4875106dcd7e5ac4b72 (diff)
parentc8730dc6f97292c963c5056f2e57b51bae4a06d0 (diff)
downloadglib-d8c913ac836c367a0c0779ffcb94f15a37c738df.tar.gz
Merge branch 'fix-c4141' into 'main'
gstring.h/gmacros.h: Avoid compiler warnings on Visual Studio Closes #2905 See merge request GNOME/glib!3285
-rw-r--r--glib/gmacros.h6
-rw-r--r--glib/gstring.h16
2 files changed, 16 insertions, 6 deletions
diff --git a/glib/gmacros.h b/glib/gmacros.h
index da3611de0..aee81a69c 100644
--- a/glib/gmacros.h
+++ b/glib/gmacros.h
@@ -1157,7 +1157,7 @@
# endif
#elif defined (_MSC_VER)
/* Use MSVC specific syntax. */
-# if G_CXX_STD_CHECK_VERSION (11) && _MSC_VER >= 1927
+# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927
# define G_ALWAYS_INLINE [[msvc::forceinline]]
# else
# define G_ALWAYS_INLINE __forceinline
@@ -1202,7 +1202,7 @@
# if defined (__GNUC__)
# define G_NO_INLINE [[gnu::noinline]]
# elif defined (_MSC_VER)
-# if _MSC_VER >= 1927
+# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927
# define G_NO_INLINE [[msvc::noinline]]
# else
# define G_NO_INLINE __declspec (noinline)
@@ -1214,7 +1214,7 @@
#elif defined (_MSC_VER) && (1200 <= _MSC_VER)
/* Use MSVC specific syntax. */
/* Use ISO C++11 syntax when the compiler supports it. */
-# if G_CXX_STD_CHECK_VERSION (11) && _MSC_VER >= 1927
+# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927
# define G_NO_INLINE [[msvc::noinline]]
# else
# define G_NO_INLINE __declspec (noinline)
diff --git a/glib/gstring.h b/glib/gstring.h
index 55825c012..859668716 100644
--- a/glib/gstring.h
+++ b/glib/gstring.h
@@ -179,9 +179,15 @@ GString* g_string_append_uri_escaped (GString *string,
const gchar *reserved_chars_allowed,
gboolean allow_utf8);
+#ifdef G_CAN_INLINE
+
+#if defined (_MSC_VER) && !defined (__clang__)
+#pragma warning (push)
+#pragma warning (disable : 4141) /* silence "warning C4141: 'inline' used more than once" */
+#endif
+
#ifndef __GTK_DOC_IGNORE__
-#ifdef G_CAN_INLINE
G_ALWAYS_INLINE
static inline GString*
g_string_append_c_inline (GString *gstring,
@@ -267,10 +273,14 @@ g_string_truncate_inline (GString *gstring,
#endif /* G_GNUC_CHECK_VERSION (2, 0) */
-#endif /* G_CAN_INLINE */
-
#endif /* __GTK_DOC_IGNORE__ */
+#if defined (_MSC_VER) && !defined (__clang__)
+#pragma warning (pop) /* #pragma warning (disable : 4141) */
+#endif
+
+#endif /* G_CAN_INLINE */
+
GLIB_DEPRECATED
GString *g_string_down (GString *string);
GLIB_DEPRECATED