From 290b56a87947620f171f65190616116fc1e0082c Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 2 Aug 2023 16:52:27 +0200 Subject: sys/features.h: Define _ISOC2X_SOURCE and __ISO_C_VISIBLE Add feature test for C2X code. Add matching definitions _ISOC2X_SOURCE for requesting sources and __ISO_C_VISIBLE to be used in headers. Signed-off-by: Corinna Vinschen --- newlib/libc/include/sys/features.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'newlib') diff --git a/newlib/libc/include/sys/features.h b/newlib/libc/include/sys/features.h index 45476ce4a..a7d4bc52d 100644 --- a/newlib/libc/include/sys/features.h +++ b/newlib/libc/include/sys/features.h @@ -87,6 +87,9 @@ extern "C" { * _ISOC11_SOURCE or gcc -std=c11 or g++ -std=c++11 * ISO C11 * + * _ISOC2x_SOURCE or gcc -std=c2x or g++ -std=c++20 + * ISO C11 + * * _ATFILE_SOURCE (implied by _POSIX_C_SOURCE >= 200809L) * "at" functions * @@ -114,6 +117,8 @@ extern "C" { #define _ISOC99_SOURCE 1 #undef _ISOC11_SOURCE #define _ISOC11_SOURCE 1 +#undef _ISOC2X_SOURCE +#define _ISOC2X_SOURCE 1 #undef _POSIX_SOURCE #define _POSIX_SOURCE 1 #undef _POSIX_C_SOURCE @@ -215,6 +220,11 @@ extern "C" { * g++ -std=c++11 or newer (on by default since GCC 6), or with * _ISOC11_SOURCE. * + * __ISO_C_VISIBLE >= 2020 + * ISO C2x; enabled with gcc -std=c2x or newer, + * g++ -std=c++20 or newer, or with + * _ISOC2X_SOURCE. + * * __ATFILE_VISIBLE * "at" functions; enabled by default, with _ATFILE_SOURCE, * _POSIX_C_SOURCE >= 200809L, or _XOPEN_SOURCE >= 700. @@ -261,7 +271,10 @@ extern "C" { #define __GNU_VISIBLE 0 #endif -#if defined(_ISOC11_SOURCE) || \ +#if defined(_ISOC2X_SOURCE) || \ + (__STDC_VERSION__ - 0) > 201710L || (__cplusplus - 0) >= 202002L +#define __ISO_C_VISIBLE 2020 +#elif defined(_ISOC11_SOURCE) || \ (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L #define __ISO_C_VISIBLE 2011 #elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \ -- cgit v1.2.3