[clang] Alias iso9899:2024 to C23, update documentation (#138459)

This commit is contained in:
Raul Tambre
2025-05-05 14:36:18 +03:00
committed by GitHub
parent 112291ad35
commit 4c43d6ae98
4 changed files with 15 additions and 7 deletions

View File

@@ -146,6 +146,15 @@ Language Selection and Mode Options
ISO C 2017 with GNU extensions
| ``c23``
| ``iso9899:2024``
ISO C 2023
| ``gnu23``
ISO C 2023 with GNU extensions
The default C language standard is ``gnu17``, except on PS4, where it is
``gnu99``.

View File

@@ -241,6 +241,7 @@ C2y Feature Support
C23 Feature Support
^^^^^^^^^^^^^^^^^^^
- Clang now accepts ``-std=iso9899:2024`` as an alias for C23.
- Added ``__builtin_c23_va_start()`` for compatibility with GCC and to enable
better diagnostic behavior for the ``va_start()`` macro in C23 and later.
This also updates the definition of ``va_start()`` in ``<stdarg.h>`` to use

View File

@@ -89,15 +89,14 @@ LANGSTANDARD_ALIAS(gnu17, "gnu18")
// C23 modes
LANGSTANDARD(c23, "c23",
C, "Working Draft for ISO C23",
C, "ISO C 2023",
LineComment | C99 | C11 | C17 | C23 | Digraphs | HexFloat)
LANGSTANDARD_ALIAS(c23, "iso9899:2024")
LANGSTANDARD_ALIAS_DEPR(c23, "c2x")
LANGSTANDARD(gnu23, "gnu23",
C, "Working Draft for ISO C23 with GNU extensions",
C, "ISO C 2023 with GNU extensions",
LineComment | C99 | C11 | C17 | C23 | Digraphs | GNUMode | HexFloat)
LANGSTANDARD_ALIAS_DEPR(gnu23, "gnu2x")
// FIXME: Add the alias for iso9899:202* once we know the year ISO publishes
// the document (expected to be 2024).
// C2y modes
LANGSTANDARD(c2y, "c2y",

View File

@@ -15,11 +15,10 @@
// CHECK-NEXT: note: use 'gnu11' for 'ISO C 2011 with GNU extensions' standard
// CHECK-NEXT: note: use 'c17', 'iso9899:2017', 'c18', or 'iso9899:2018' for 'ISO C 2017' standard
// CHECK-NEXT: note: use 'gnu17' or 'gnu18' for 'ISO C 2017 with GNU extensions' standard
// CHECK-NEXT: note: use 'c23' for 'Working Draft for ISO C23' standard
// CHECK-NEXT: note: use 'gnu23' for 'Working Draft for ISO C23 with GNU extensions' standard
// CHECK-NEXT: note: use 'c23' or 'iso9899:2024' for 'ISO C 2023' standard
// CHECK-NEXT: note: use 'gnu23' for 'ISO C 2023 with GNU extensions' standard
// CHECK-NEXT: note: use 'c2y' for 'Working Draft for ISO C2y' standard
// CHECK-NEXT: note: use 'gnu2y' for 'Working Draft for ISO C2y with GNU extensions' standard
// Make sure that no other output is present.
// CHECK-NOT: {{^.+$}}