-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[clang] Alias iso9899:2024 to C23, update documentation #138459
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-clang-driver @llvm/pr-subscribers-clang Author: Raul Tambre (tambry) ChangesFull diff: https://github.com/llvm/llvm-project/pull/138459.diff 4 Files Affected:
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: {{^.+$}}
-
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thank you for this!
@AaronBallman Hmm, should we also document |
Yup, we should! |
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/11/builds/14417 Here is the relevant piece of the build log for the reference
|
As discussed at #138459 (comment)
No description provided.