https://github.com/tambry created 
https://github.com/llvm/llvm-project/pull/138459

None

>From 4f4394ff468cb0b398df9e8dab7cf9d18b019c1a Mon Sep 17 00:00:00 2001
From: Raul Tambre <r...@tambre.ee>
Date: Sun, 4 May 2025 18:58:13 +0300
Subject: [PATCH] [clang] Alias iso9899:2024 to C23, update documentation

---
 clang/docs/CommandGuide/clang.rst           | 9 +++++++++
 clang/docs/ReleaseNotes.rst                 | 1 +
 clang/include/clang/Basic/LangStandards.def | 7 +++----
 clang/test/Driver/unknown-std.c             | 5 ++---
 4 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/clang/docs/CommandGuide/clang.rst 
b/clang/docs/CommandGuide/clang.rst
index 42aac7b25d93c..e3399d39bf00c 100644
--- a/clang/docs/CommandGuide/clang.rst
+++ b/clang/docs/CommandGuide/clang.rst
@@ -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``.
 
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 918ff952bb2c3..52ef686841c04 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -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
diff --git a/clang/include/clang/Basic/LangStandards.def 
b/clang/include/clang/Basic/LangStandards.def
index 982a79873adb5..49cd9881829d4 100644
--- a/clang/include/clang/Basic/LangStandards.def
+++ b/clang/include/clang/Basic/LangStandards.def
@@ -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",
diff --git a/clang/test/Driver/unknown-std.c b/clang/test/Driver/unknown-std.c
index 332d587ddd4a1..539b04f69b9ae 100644
--- a/clang/test/Driver/unknown-std.c
+++ b/clang/test/Driver/unknown-std.c
@@ -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: {{^.+$}}
-

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to