mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-11-01 08:52:18 +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) == 11 && G_C_STD_VERSION >= 201112L) || \
|
||||
((version) == 17 && G_C_STD_VERSION >= 201710L) || \
|
||||
((version) == 23 && G_C_STD_VERSION >= 202311L) || \
|
||||
0)
|
||||
|
||||
#else /* defined (__cplusplus) */
|
||||
@@ -103,6 +104,7 @@
|
||||
((version) == 14 && G_CXX_STD_VERSION >= 201402L) || \
|
||||
((version) == 17 && G_CXX_STD_VERSION >= 201703L) || \
|
||||
((version) == 20 && G_CXX_STD_VERSION >= 202002L) || \
|
||||
((version) == 23 && G_CXX_STD_VERSION >= 202302L) || \
|
||||
0)
|
||||
|
||||
#endif /* !defined (__cplusplus) */
|
||||
|
||||
@@ -97,7 +97,17 @@ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (99));
|
||||
|
||||
#if G_CXX_STD_VERSION == 202002L
|
||||
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
|
||||
|
||||
#ifdef _G_EXPECTED_CXX_STANDARD
|
||||
@@ -123,6 +133,15 @@ test_cpp_standard (void)
|
||||
}
|
||||
#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 "
|
||||
"the expected standard version '" _G_EXPECTED_CXX_STANDARD "'");
|
||||
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
|
||||
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
|
||||
|
||||
#ifdef _G_EXPECTED_C_STANDARD
|
||||
|
||||
@@ -18,7 +18,7 @@ fs = import('fs')
|
||||
cc = meson.get_compiler('c')
|
||||
c_standards = {}
|
||||
|
||||
foreach std : ['89', '99', '11', '17']
|
||||
foreach std : ['89', '99', '11', '17', '23']
|
||||
arg = (cc.get_id() == 'msvc' ? '/std:' : '-std=') + 'c' + std
|
||||
if cc.has_argument(arg)
|
||||
c_standards += { std: arg }
|
||||
@@ -41,7 +41,7 @@ if have_cxx
|
||||
cxx = meson.get_compiler('cpp')
|
||||
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
|
||||
if cxx.has_argument(arg)
|
||||
cxx_standards += { std: arg }
|
||||
|
||||
Reference in New Issue
Block a user