mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-11 11:56:16 +01:00
gmacros: Use C++ namespaces attribute specifier sequences for msvc
As we do already for GNU compilers, when using C++ we should use attribute sequences with msvc namespace. This is not supported by msvc versions earlier than 2019 16.7 according to [1], and thus we need to check if `_MSC_VER` is at least 1927 [2]. See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2895#note_1572952 [1] https://www.codetd.com/en/article/11761480 [2] https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170&viewFallbackFrom=vs-2019#feedback
This commit is contained in:
parent
ad755e7489
commit
5ff02aa5f9
@ -1157,7 +1157,11 @@
|
||||
# endif
|
||||
#elif defined (_MSC_VER)
|
||||
/* Use MSVC specific syntax. */
|
||||
# define G_ALWAYS_INLINE __forceinline
|
||||
# if G_CXX_STD_CHECK_VERSION (11) && _MSC_VER >= 1927
|
||||
# define G_ALWAYS_INLINE [[msvc::forceinline]]
|
||||
# else
|
||||
# define G_ALWAYS_INLINE __forceinline
|
||||
# endif
|
||||
#else
|
||||
# define G_ALWAYS_INLINE /* empty */
|
||||
#endif
|
||||
@ -1197,6 +1201,12 @@
|
||||
/* Use ISO C++11 syntax when the compiler supports it. */
|
||||
# if defined (__GNUC__)
|
||||
# define G_NO_INLINE [[gnu::noinline]]
|
||||
# elif defined (_MSC_VER)
|
||||
# if _MSC_VER >= 1927
|
||||
# define G_NO_INLINE [[msvc::noinline]]
|
||||
# else
|
||||
# define G_NO_INLINE __declspec (noinline)
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
# define G_NO_INLINE __attribute__ ((__noinline__))
|
||||
@ -1204,7 +1214,11 @@
|
||||
#elif defined (_MSC_VER) && (1200 <= _MSC_VER)
|
||||
/* Use MSVC specific syntax. */
|
||||
/* Use ISO C++11 syntax when the compiler supports it. */
|
||||
# define G_NO_INLINE __declspec (noinline)
|
||||
# if G_CXX_STD_CHECK_VERSION (11) && _MSC_VER >= 1927
|
||||
# define G_NO_INLINE [[msvc::noinline]]
|
||||
# else
|
||||
# define G_NO_INLINE __declspec (noinline)
|
||||
# endif
|
||||
#else
|
||||
# define G_NO_INLINE /* empty */
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user