mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-11-06 02:58:55 +01:00
Merge branch 'c23' into 'main'
macros: Add C23/C++23 standards See merge request GNOME/glib!4831
This commit is contained in:
@@ -82,6 +82,7 @@
|
|||||||
((version) == 99 && G_C_STD_VERSION >= 199901L) || \
|
((version) == 99 && G_C_STD_VERSION >= 199901L) || \
|
||||||
((version) == 11 && G_C_STD_VERSION >= 201112L) || \
|
((version) == 11 && G_C_STD_VERSION >= 201112L) || \
|
||||||
((version) == 17 && G_C_STD_VERSION >= 201710L) || \
|
((version) == 17 && G_C_STD_VERSION >= 201710L) || \
|
||||||
|
((version) == 23 && G_C_STD_VERSION >= 202311L) || \
|
||||||
0)
|
0)
|
||||||
|
|
||||||
#else /* defined (__cplusplus) */
|
#else /* defined (__cplusplus) */
|
||||||
@@ -103,6 +104,7 @@
|
|||||||
((version) == 14 && G_CXX_STD_VERSION >= 201402L) || \
|
((version) == 14 && G_CXX_STD_VERSION >= 201402L) || \
|
||||||
((version) == 17 && G_CXX_STD_VERSION >= 201703L) || \
|
((version) == 17 && G_CXX_STD_VERSION >= 201703L) || \
|
||||||
((version) == 20 && G_CXX_STD_VERSION >= 202002L) || \
|
((version) == 20 && G_CXX_STD_VERSION >= 202002L) || \
|
||||||
|
((version) == 23 && G_CXX_STD_VERSION >= 202302L) || \
|
||||||
0)
|
0)
|
||||||
|
|
||||||
#endif /* !defined (__cplusplus) */
|
#endif /* !defined (__cplusplus) */
|
||||||
|
|||||||
@@ -97,7 +97,17 @@ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (99));
|
|||||||
|
|
||||||
#if G_CXX_STD_VERSION == 202002L
|
#if G_CXX_STD_VERSION == 202002L
|
||||||
G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (23));
|
G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (23));
|
||||||
G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202300L));
|
G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202302L));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if G_CXX_STD_VERSION >= 202302L
|
||||||
|
G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (23));
|
||||||
|
G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (202302L));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if G_CXX_STD_VERSION == 202302L
|
||||||
|
G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (26));
|
||||||
|
G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202600L));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _G_EXPECTED_CXX_STANDARD
|
#ifdef _G_EXPECTED_CXX_STANDARD
|
||||||
@@ -123,6 +133,15 @@ test_cpp_standard (void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !G_GNUC_CHECK_VERSION(14, 0)
|
||||||
|
if (std_version >= 23)
|
||||||
|
{
|
||||||
|
// See: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5388a43f6a3f348929292998bd6d0c1da6f006de
|
||||||
|
g_test_skip ("Expected standard version is not properly supported by compiler");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
g_test_message ("Checking if '" G_STRINGIFY (G_CXX_STD_VERSION) "' respects "
|
g_test_message ("Checking if '" G_STRINGIFY (G_CXX_STD_VERSION) "' respects "
|
||||||
"the expected standard version '" _G_EXPECTED_CXX_STANDARD "'");
|
"the expected standard version '" _G_EXPECTED_CXX_STANDARD "'");
|
||||||
g_assert_true (G_CXX_STD_CHECK_VERSION (std_version));
|
g_assert_true (G_CXX_STD_CHECK_VERSION (std_version));
|
||||||
|
|||||||
@@ -74,7 +74,17 @@ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (90));
|
|||||||
|
|
||||||
#if G_C_STD_VERSION == 201710L
|
#if G_C_STD_VERSION == 201710L
|
||||||
G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (23));
|
G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (23));
|
||||||
G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (202300L));
|
G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (202311L));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if G_C_STD_VERSION >= 202311L
|
||||||
|
G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (23));
|
||||||
|
G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (202311L));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if G_C_STD_VERSION == 202311L
|
||||||
|
G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (26));
|
||||||
|
G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (202600L));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _G_EXPECTED_C_STANDARD
|
#ifdef _G_EXPECTED_C_STANDARD
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ fs = import('fs')
|
|||||||
cc = meson.get_compiler('c')
|
cc = meson.get_compiler('c')
|
||||||
c_standards = {}
|
c_standards = {}
|
||||||
|
|
||||||
foreach std : ['89', '99', '11', '17']
|
foreach std : ['89', '99', '11', '17', '23']
|
||||||
arg = (cc.get_id() == 'msvc' ? '/std:' : '-std=') + 'c' + std
|
arg = (cc.get_id() == 'msvc' ? '/std:' : '-std=') + 'c' + std
|
||||||
if cc.has_argument(arg)
|
if cc.has_argument(arg)
|
||||||
c_standards += { std: arg }
|
c_standards += { std: arg }
|
||||||
@@ -41,7 +41,7 @@ if have_cxx
|
|||||||
cxx = meson.get_compiler('cpp')
|
cxx = meson.get_compiler('cpp')
|
||||||
cxx_standards = {}
|
cxx_standards = {}
|
||||||
|
|
||||||
foreach std : ['98', '03', '11', '14', '17', '20', '2b', 'latest']
|
foreach std : ['98', '03', '11', '14', '17', '20', '23', '2c', 'latest']
|
||||||
arg = (cxx.get_id() == 'msvc' ? '/std:' : '-std=') + 'c++' + std
|
arg = (cxx.get_id() == 'msvc' ? '/std:' : '-std=') + 'c++' + std
|
||||||
if cxx.has_argument(arg)
|
if cxx.has_argument(arg)
|
||||||
cxx_standards += { std: arg }
|
cxx_standards += { std: arg }
|
||||||
|
|||||||
Reference in New Issue
Block a user