Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2023-08-02 17:52:27 +0300
committerCorinna Vinschen <corinna@vinschen.de>2023-08-02 17:56:24 +0300
commit290b56a87947620f171f65190616116fc1e0082c (patch)
treec0448d91b686953d262b622adb5ea3b2049f3411 /newlib
parent8fbbc668a01db50c3735d396f6e021940f7b3834 (diff)
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 <corinna@vinschen.de>
Diffstat (limited to 'newlib')
-rw-r--r--newlib/libc/include/sys/features.h15
1 files changed, 14 insertions, 1 deletions
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 || \